[Bug] packaged into components by lib ,Unexpected usage at yc.loadForeignModule #4029
-
Reproducible in vscode.dev or in VS Code Desktop?
Reproducible in the monaco editor playground?
Monaco Editor Playground Link1 Monaco Editor Playground Code1. version
"monaco-editor": "^0.38.0",
"vite": "^3.0.2",
"vite-plugin-monaco-editor": "^1.1.0",
2.use
import * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js';
import 'monaco-editor/esm/vs/basic-languages/javascript/javascript.contribution';
import 'monaco-editor/esm/vs/basic-languages/markdown/markdown.contribution';
import 'monaco-editor/esm/vs/editor/editor.all.js';
import 'monaco-editor/esm/vs/language/typescript/monaco.contribution';
import 'monaco-editor/esm/vs/language/json/monaco.contribution';
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';
// @ts-ignore
self.MonacoEnvironment = {
getWorker(_, label) {
if (label === 'json') {
return new jsonWorker();
}
if (label === 'css' || label === 'scss' || label === 'less') {
return new cssWorker();
}
if (label === 'html' || label === 'handlebars' || label === 'razor') {
return new htmlWorker();
}
if (label === 'typescript' || label === 'javascript') {
return new tsWorker();
}
return new editorWorker();
},
};
export { monaco };
3. lib
import monacoEditorPlugin from 'vite-plugin-monaco-editor';
export default defineConfig({
build: {
lib: {
....
},
},
plugins: [
monacoEditorPlugin({
languageWorkers: ['editorWorkerService', 'json', 'typescript'],
}),
... Reproduction Steps1 Actual (Problematic) BehaviorExpected Behavior1 Additional Context1 |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
solve
|
Beta Was this translation helpful? Give feedback.
solve
Add the following code to the index.html file:
<script>self["MonacoEnvironment"] = (function (paths) { return { globalAPI: false, getWorkerUrl : function (moduleId, label) { var result = paths[label]; if (/^((http:)|(https:)|(file:)|(\/\/))/.test(result)) { var currentUrl = String(window.location); var currentOrigin = currentUrl.substr(0, currentUrl.length - window.location.hash.length - window.location.search.length - window.location.pathname.length); if (result.substring(0, currentOrigin.length) !== currentOrigin) { var js = '/*' + label + '*/importScripts("' + result + '");'; var blob = new Blob([js], { type: 'application/javascript' }); return URL.createObjectURL(blob); } } retu…