Wie kann ich das beheben Webpack zugehörige Fehler: Cannot assign auf "nur Lesen" - Eigenschaft 'Export' für das Objekt '#<Object>'?
Ich bin mit webpack, die, wenn ich das richtig verstanden habe, nicht unterstützt native webworker syntax, so bin ich versucht, die worker-loader
npm-Modul, aber ich bekomme eine seltsame Fehlermeldung.
Kann das Modul gefunden werden hier.
Mein webpack config:
module.exports = {
entry: "./app",
output: {
path: __dirname + "/build",
filename: "bundle.js"
},
watch: true,
module: {
rules: [{
test: /\.worker\.js$/,
use: {
loader: 'worker-loader'
}
}]
}
}
Mein code der Auslösung der Fehler:
import Worker from '../workers/sim.js';
class Synapse {
//...
}
module.exports = Synapse;
Fehler:
Cannot assign to read only property 'exports' of object '#<Object>'?
Punkte, die zu module.exports = Synapse
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erhalten Sie diese Fehlermeldung, wenn das mischen der CommonJS
module.exports
mit ES-Module. Sie haben Sie zu ändernmodule.exports
zu seiner ES-Modul Gegenstückexport default
:import
eher alsrequire
zu retreive Modul, dann wiederum andere Dateien, mischen Sie nun commonJSrequire
syntax und dieimport
syntax brechen, so würde es richtig sein zu sagen, dass die Verwendungimport
in diesem Fall schafft eine Kettenreaktion, die im wesentlichen zwingen Sie mich, dies zu ändernrequire
Anrufe in meinem Projekt zuimport
?default export
geändert, so dass Sie brauchen, um verwenden Sie die folgende syntax:require("./Synapse").default
im Gegensatz zurequire("./Synapse")
. Zum Glück gibt es eine Babel-plugin bringen kann, dass das alte Verhalten zurück, was nützlich ist, wenn Sie viele Module, die Verwendung der älteren syntax: github.com/59naga/babel-plugin-add-module-exports . Die andere alternative ist, wie du erwähnt hast, ändern Ihrerequire
Anrufe zu N-Modulimport
s