我正在使用webpack,如果我理解正确,它不支持原生网络工作者语法,所以我尝试使用worker-loader
npm模块,但我&#39 ;得到一个奇怪的错误。
可以找到该模块here。
我的webpack配置:
module.exports = {
entry: "./app",
output: {
path: __dirname + "/build",
filename: "bundle.js"
},
watch: true,
module: {
rules: [{
test: /\.worker\.js$/,
use: {
loader: 'worker-loader'
}
}]
}
}
我的代码触发错误:
import Worker from '../workers/sim.js';
class Synapse {
// ...
}
module.exports = Synapse;
错误:
Cannot assign to read only property 'exports' of object '#<Object>'?
指向module.exports = Synapse
答案 0 :(得分:3)
将CommonJS module.exports
与ES模块混合时会出现此错误。您必须将module.exports
更改为其ES模块对应export default
:
import Worker from '../workers/sim.js';
class Synapse {
// ...
}
export default Synapse; // ES Module syntax
答案 1 :(得分:0)
您正在同一文件中进行导入和导出,这是 webpack 不允许的 最好这样做
const {Worker} = require('../workers/sim.js');
class Synapse {
// ...
}
module.exports = {Synapse};