Merge pull request #2991 from Dan1ve/patch-using-vite-code

Make Vite sample code Firefox compatible
This commit is contained in:
Henning Dieterichs 2022-02-24 13:55:07 +01:00 committed by GitHub
commit 72b7b1ea3b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -192,28 +192,38 @@ Adding monaco editor to [Vite](https://vitejs.dev/) is simple since it has built
```js ```js
import * as monaco from 'monaco-editor'; import * as monaco from 'monaco-editor';
import editorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker';
import jsonWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker';
import cssWorker from 'monaco-editor/esm/vs/language/css/css.worker?worker';
import htmlWorker from 'monaco-editor/esm/vs/language/html/html.worker?worker';
import tsWorker from 'monaco-editor/esm/vs/language/typescript/ts.worker?worker';
self.MonacoEnvironment = { self.MonacoEnvironment = {
getWorker(_, label) { getWorker: function(workerId, label) {
if (label === 'json') {
return new jsonWorker(); const getWorkerModule = (moduleUrl, label) => {
} return new Worker(self.MonacoEnvironment.getWorkerUrl(moduleUrl), {
if (label === 'css' || label === 'scss' || label === 'less') { name: label,
return new cssWorker(); type: 'module'
} });
if (label === 'html' || label === 'handlebars' || label === 'razor') { };
return new htmlWorker();
} switch (label) {
if (label === 'typescript' || label === 'javascript') { case 'json':
return new tsWorker(); return getWorkerModule('/monaco-editor/esm/vs/language/json/json.worker?worker', label);
} case 'css':
return new editorWorker(); case 'scss':
} case 'less':
return getWorkerModule('/monaco-editor/esm/vs/language/css/css.worker?worker', label);
case 'html':
case 'handlebars':
case 'razor':
return getWorkerModule('/monaco-editor/esm/vs/language/html/html.worker?worker', label);
case 'typescript':
case 'javascript':
return getWorkerModule(
'/monaco-editor/esm/vs/language/typescript/ts.worker?worker',
label
);
default:
return getWorkerModule('/monaco-editor/esm/vs/editor/editor.worker?worker', label);
}
}
}; };
monaco.editor.create(document.getElementById('container'), { monaco.editor.create(document.getElementById('container'), {