英语太烂了,只能一点一点的啃。Orz…Orz…Orz…
vite-plugin-monaco-editor是一个简化 Monaco Editor 加载过程的 Vite 插件 。
esbuild
来绑定 node_modules/.monaco
目录中的Worker
,通过server.middlewares
http代理服务器为 bundle worker。// 使用下面的命令安装monaco-editor.
yarn add vite-plugin-monaco-editor -D
// 或者
npm install --save-dev vite-plugin-monaco-editor
vite.config.ts
:import { defineConfig } from "vite";
import monacoEditorPlugin from "vite-plugin-monaco-editor"
export default defineConfig({
plugins: [
monacoEditorPlugin()
],
})
index.ts
:import * as monaco from 'monaco-editor'
monaco.editor.create(document.getElementById('container'), {
value: 'console.log("Hello, world")',
language: 'javascript'
});
import * as monaco from 'monaco-editor'
是导入Monaco Editor的所有功能和支持语言。如果你只需要部门功能和支持语言:
customMonaco.ts
导入文件1import 'monaco-editor/esm/vs/editor/editor.all.js';
import 'monaco-editor/esm/vs/editor/standalone/browser/accessibilityHelp/accessibilityHelp.js';
import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
export { monaco };
index.ts
import {monaco} from './customMonaco.ts'
monaco.editor.create(document.getElementById('container'), {
value: 'console.log("Hello, world")',
language: 'javascript'
});
languageWorkers
(string[]
) - 仅包括 languageWorkers支持的一个子集。
['editorWorkerService', 'css', 'html', 'json', 'typescript']
.css worker
你可以设置为 ['editorWorkerService', 'css']
,其中worker editorWorkerService
为必须引入的基础worker
。customWorkers
(IWorkerDefinition[]
) - 引入自定义的worker
。
[]
[{label: "graphql", entry: "monaco-graphql/esm/graphql.worker"}]
,entry
是node_modules
的相对路径,你也可以设置绝对路径。publicPath
(string
) - worker scripts
的自定义公共路径,覆盖本插件保存生成文件的公共路径。你可以设置为CDN e.g https://unpkg.com/vite-plugin-monaco-editor@1.0.5/cdn
monacoeditorwork
globalAPI
(boolean
) - 指定editor API
是否通过全局 monaco
对象公开。 这项配置适用于 0.22.0
或更高版本的 monaco-editor
。 从 0.22.0
版本开始,ESM版本的monaco editor
不再定义全局monaco
对象,除非设置了global.MonacoEnvironment = { globalAPI: true }
,详细请查看更新日志。
false
.某些语言共享同一个 Worker
。 如果包含以下语言之一,则还必须包含负责实例化其共享工作器的语言:
Language | Instantiator |
---|---|
javascript | typescript |
handlebars | html |
scss, less | css |