【问题标题】:Unexpected usage when bundled using esbuild使用 esbuild 捆绑时出现意外使用
【发布时间】:2021-05-26 18:42:21
【问题描述】:

以下简单设置在使用 webpack 捆绑时有效,但在 esbuild 上无效。 捆绑没有问题,esbuild 正确吐出所有文件,但不知何故在浏览器上出现此错误。对这个问题有任何想法吗?

index.js

import * as monaco from "monaco-editor";

self.MonacoEnvironment = {
  getWorkerUrl: function (moduleId, label) {
    if (label === "typescript" || label === "javascript") {
      return "./ts.worker.bundle.js";
    }
    return "./editor.worker.bundle.js";
  },
};

monaco.editor.create(document.getElementById("container"), {
  value: ["function x() {", '\tconsole.log("Hello world!");', "}"].join("\n"),
  language: "javascript",
});

Esbuild 配置

const esbuild = require("esbuild");

esbuild.build({
  entryPoints: {
    app: "./index.js",
    "editor.worker": "monaco-editor/esm/vs/editor/editor.worker.js",
    "ts.worker": "monaco-editor/esm/vs/language/typescript/ts.worker",
  },
  globalName: "self",
  entryNames: "[name].bundle",
  bundle: true,
  outdir: "./dist",
  loader: {
    ".ttf": "file",
  },
});

Log From Browser Console

app.bundle.js:2393 Uncaught Error: Unexpected usage

Error: Unexpected usage
    at EditorSimpleWorker.loadForeignModule (app.bundle.js:16294)
    at app.bundle.js:17060
    at app.bundle.js:2393

【问题讨论】:

    标签: monaco-editor esbuild


    【解决方案1】:

    这行看起来有问题:

    globalName: "self",
    

    在浏览器中,self 已经是一个内置变量:https://developer.mozilla.org/en-US/docs/Web/API/Window/self。跟踪它可能会破坏摩纳哥。如果您只是删除该行,您的代码似乎可以工作。

    【讨论】:

      猜你喜欢
      • 2020-11-15
      • 1970-01-01
      • 2021-09-28
      • 1970-01-01
      • 1970-01-01
      • 2018-04-09
      • 1970-01-01
      • 2013-02-03
      • 2013-10-13
      相关资源
      最近更新 更多