require.config({paths: {'vs': 'https://unpkg.com/monaco-editor@latest/min/vs'}}); // Before loading vs/editor/editor.main, define a global MonacoEnvironment that overwrites // the default worker url location (used when creating WebWorkers). The problem here is that // HTML5 does not allow cross-domain web workers, so we need to proxy the instantiation of // a web worker through a same-domain script window.MonacoEnvironment = { getWorkerUrl: function (workerId, label) { return `data:text/javascript;charset=utf-8,${encodeURIComponent(` self.MonacoEnvironment = { baseUrl: 'https://unpkg.com/monaco-editor@latest/min/' }; importScripts('https://unpkg.com/monaco-editor@latest/min/vs/base/worker/workerMain.js');` )}`; } }; let editors = []; require(["vs/editor/editor.main"], function () { let $filenames = document.querySelectorAll(".monaco-filename"); document.querySelectorAll('.monaco-editor').forEach((elem, idx) => { let $editor = monaco.editor.create(elem, { language: 'text', theme: 'vs-dark', fontSize: "12px" }); elem.classList.remove("loading", "loading-lg"); let $filename = $filenames[idx]; editors.push({ "filename": $filename, "editor": $editor }); $filename.addEventListener('keyup', () => { let value = $editor.getValue(); $editor.getModel().dispose(); let $model = monaco.editor.createModel( value, undefined, monaco.Uri.file($filename.value) ) $editor.setModel($model); }); }) //monaco.editor.setModelLanguage($editor.getModel(), "go"); });