首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复错误:在vue-cli-3中为摩纳哥编辑器意外使用加载外部模块

如何修复错误:在vue-cli-3中为摩纳哥编辑器意外使用加载外部模块
EN

Stack Overflow用户
提问于 2020-05-19 06:05:59
回答 1查看 3.9K关注 0票数 4

当我试图在我的vue-cli-3项目中包含优化选项时(该项目在某些页面中使用摩纳哥编辑器),控制台中会出现以下错误:

代码语言:javascript
复制
languageFeatures.js?ff36:85 Error: Unexpected usage
    at EditorSimpleWorker.loadForeignModule (editorSimpleWorker.js?ccf6:540)
    at eval (webWorker.js?af50:54)

这是我的vue.config.js文件:

代码语言:javascript
复制
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})}),
        ],
    }
};

  • 摩纳哥编辑器-v0.20.0
  • 摩纳哥编辑器webpack插件- v1.9.0
  • Vue/cli - v4.3.1

所以问题是,我如何避免获得这个错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-15 09:56:23

应该定义摩纳哥环境的基本URL,并在尝试导入editor.main.js.之前导入主工作人员。在加载编辑器之前,您可以尝试通过执行以下代码来解决问题。

代码语言:javascript
复制
(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文件所在的位置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61884293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档