如何将 monaco yaml 插件与 Monaco Webpack Loader 插件一起使用?

How can I use monaco yaml plugin with Monaco Webpack Loader Plugin?

我使用 Webpack Loader 插件安装了 ESM 版本的 Monaco。我想添加 monaco yaml 插件,但我很难理解该怎么做。我正在使用 Integrating the ESM version of the Monaco Editor guide and Monaco Yam plugin README.

yaml 插件的文档说要在 MonacoEnvironment; however, the ESM documentation says to either use Webpack loader, or to set up getWorkerUrl` 函数中设置 getWorker 函数,所以总共有三种不同的设置方法。

总的来说,没有关于所有这些配置的确切契约的适当信息,只有简单的例子,以及所有三种方法之间似乎隐约相似的很多东西(getWorkergetWorkerUrlMonacoWebpackPlugin) 没有任何澄清,所以我对此感到非常困惑。这些问题是我构建所有可用信息的最佳尝试。

我已经添加了答案to the plugin's README file:

您可以扩展插件的配置。扩展你的 webpack.config.js 文件包含以下内容:

import { MonacoWebpackPlugin } from 'monaco-editor-webpack-plugin';

export default {
  // ...the rest of your webpack configuration...
  plugins: [
    new MonacoWebpackPlugin({
      languages: ['yaml'],
      customLanguages: [
        {
          label: 'yaml',
          entry: 'monaco-yaml',
          worker: {
            id: 'monaco-yaml/yamlWorker',
            entry: 'monaco-yaml/yaml.worker',
          },
        },
      ],
    }),
  ],
};

您也可以参考 example 一个完整的项目。