当我试图在我的vue-cli-3项目中包含优化选项时(该项目在某些页面中使用摩纳哥编辑器),控制台中会出现以下错误:
languageFeatures.js?ff36:85 Error: Unexpected usage
at EditorSimpleWorker.loadForeignModule (editorSimpleWorker.js?ccf6:540)
at eval (webWorker.js?af50:54)这是我的vue.config.js文件:
const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin');
const TerserPlugin = require('terser-webpack-plugin');
const PurgecssPlugin = require("purgecss-webpack-plugin");
module.exports = {
transpileDependencies: ["vuex-persist", "vuex-persistedstate"],
configureWebpack: {
devtool: false,
optimization: {
splitChunks: {
minSize: 10000,
maxSize: 250000,
},
nodeEnv: "production",
minimize: true,
minimizer: [
new TerserPlugin({
extractComments: 'false',
parallel: true,
}),
],
removeEmptyChunks: true,
removeAvailableModules: true,
mergeDuplicateChunks: true
},
plugins: [
new MonacoWebpackPlugin({
languages: ['javascript', 'css', 'html', 'typescript', 'json'],
features: ['!gotoSymbol'],
}),
new PurgecssPlugin({paths: glob.sync(`${PATHS.src}/**/*`, {nodir: true})}),
],
}
};所以问题是,我如何避免获得这个错误?
发布于 2020-10-15 09:56:23
应该定义摩纳哥环境的基本URL,并在尝试导入editor.main.js.之前导入主工作人员。在加载编辑器之前,您可以尝试通过执行以下代码来解决问题。
(window as any).MonacoEnvironment = {
getWorkerUrl: function (workerId, label) {
return `data:text/javascript;charset=utf-8,${encodeURIComponent(`
self.MonacoEnvironment = { baseUrl: '${window.location.origin}/' };
importScripts('${window.location.origin}/vs/base/worker/workerMain.js');
`)}`;
}
};还需要注意的是,您应该将URL更改为vs文件所在的位置。
https://stackoverflow.com/questions/61884293
复制相似问题