我尝试使用vue-cli webpack安装设置worker-loader,为构建/配置提供以下文件结构:
-build
--vue-loader.conf.js
--webpack.base.conf.js
--other build files...
-config
--index.js
--dev.env.js
--other config files...
然后我用
安装了worker-loadernpm install worker-loader --save-dev
然后我尝试使用
来使用worker.jsrequire('worker-loader!my-worker.js');
但它没有被babel加载,它被用作vue-cli webpack版本的默认值
然后我尝试使用以下配置更新webpack.base.conf.js:
module: {
rules: [
{
test: /\.(js|vue)$/,
loader: 'eslint-loader',
enforce: 'pre',
include: [resolve('src'), resolve('test')],
options: {
formatter: require('eslint-friendly-formatter')
}
},
{
test: /\.vue$/,
loader: 'vue-loader',
options: vueLoaderConfig
},
{
test: /\.js$/,
loader: 'babel-loader',
include: [resolve('src'), resolve('test')]
},
{
test: /\worker\.js$/,
loader: 'worker-loader',
include: [resolve('src'), resolve('test')]
},
{
test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: utils.assetsPath('img/[name].[hash:7].[ext]')
}
},
{
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
}
}
]
}
但是我的工作人员只能被babel读取并作为常规js文件导入,而worker-loader也不会做任何事情。
那么如何正确配置?
答案 0 :(得分:1)
Woops,我确实发现了我的错误。
我尝试用:
加载worker-loaderimport myWorker from 'worker-loader?./myworker'
let worker = new Worker(myWorker);
所以解决方案就是使用:
import myWorker from 'worker-loader?./myworker'
let worker = new myWorker;
所以现在它起作用了: - )