我正在用vuejs
&CCD_ 2。我已经添加了要用vue-cli
的内部webpack
处理的内容脚本,s.t.:
configureWebpack: {
entry: {
contentScript: "./src/contentScript/contentScript.js"
}
汇编工作。我正在获取一个contentScript.js
,一个捆绑在网络包中的文件。但是,当我尝试使用加载此文件时
chrome.tabs.executeScript({
file: "js/contentScript.js"
});
什么也没发生。事实上,即使contentScript.js
只包含console.log('test')
,它似乎也不会像我想象的那样被webpack
处理,因为在浏览器控制台中执行脚本不会产生任何结果。
我在这里监督什么?从vue inspect
,我可以看到以下webpack
-js
的规则:
/* config.module.rule('js') */
{
test: /.m?jsx?$/,
exclude: [
function () { /* omitted long function */ }
],
use: [
{
loader: '/home/user/Coding/webext/node_modules/cache-loader/dist/cjs.js',
options: {
cacheDirectory: '/home/user/Coding/webext/node_modules/.cache/babel-loader',
cacheIdentifier: '356420a0'
}
},
{
loader: '/home/user/Coding/webext/node_modules/babel-loader/lib/index.js'
}
]
},
我终于想通了!这是因为splitChunks
将所有node_module
资产捆绑在一个vendor
块中。由于我的contentScript.js
-脚本没有加载这个vendor
-块,webpack
无法完成它的任务。这似乎是因为webpack
本身需要一些ES-node_modules
。如果vue-cli
0让我知道它缺少了一大块,那真的会很有帮助,但哦,好吧。。。vue.config.js
中的必要配置是:
chainWebpack: config => {
config.optimization.splitChunks(false);
}