Browse Source

fix: load workers inline

pull/7218/head
Pranav C 12 months ago committed by Ramesh Mane
parent
commit
5a36fa826f
  1. 29
      packages/nc-gui/components/monaco/Editor.vue
  2. 8
      packages/nc-gui/nuxt.config.ts

29
packages/nc-gui/components/monaco/Editor.vue

@ -2,12 +2,12 @@
import 'monaco-editor/esm/vs/basic-languages/javascript/javascript.contribution' import 'monaco-editor/esm/vs/basic-languages/javascript/javascript.contribution'
import 'monaco-editor/esm/vs/basic-languages/typescript/typescript.contribution' import 'monaco-editor/esm/vs/basic-languages/typescript/typescript.contribution'
import EditorWorkerUrl from 'monaco-editor/esm/vs/editor/editor.worker?worker&url' import EditorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker&inline'
import TsWorkerUrl from 'monaco-editor/esm/vs/language/typescript/ts.worker?worker&url' import TsWorker from 'monaco-editor/esm/vs/language/typescript/ts.worker?worker&inline'
import JsonWorkerUrl from 'monaco-editor/esm/vs/language/json/json.worker?worker&url' import JsonWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker&inline'
import type { editor as MonacoEditor } from 'monaco-editor' import type { editor as MonacoEditor } from 'monaco-editor'
import { deepCompare, isDrawerOrModalExist, onMounted, ref, watch, initWorker } from '#imports' import { deepCompare, initWorker, isDrawerOrModalExist, onMounted, ref, watch } from '#imports'
interface Props { interface Props {
modelValue: string | Record<string, any> modelValue: string | Record<string, any>
@ -49,15 +49,22 @@ const isValid = ref(true)
* Adding monaco editor to Vite * Adding monaco editor to Vite
* *
* @ts-expect-error */ * @ts-expect-error */
self.MonacoEnvironment = { self.MonacoEnvironment = window.MonacoEnvironment = {
getWorker(_: any, label: string) { getWorker(_: any, label: string) {
console.log(JsonWorker, TsWorker, EditorWorker)
switch (label) { switch (label) {
case 'json': case 'json': {
return initWorker(JsonWorkerUrl) const workerBlob = new Blob([JsonWorker], { type: 'text/javascript' })
case 'typescript': return initWorker(URL.createObjectURL(workerBlob))
return initWorker(TsWorkerUrl) }
default: case 'typescript': {
return initWorker(EditorWorkerUrl) const workerBlob = new Blob([TsWorker], { type: 'text/javascript' })
return initWorker(URL.createObjectURL(workerBlob))
}
default: {
const workerBlob = new Blob([EditorWorker], { type: 'text/javascript' })
return initWorker(URL.createObjectURL(workerBlob))
}
} }
}, },
} }

8
packages/nc-gui/nuxt.config.ts

@ -4,7 +4,6 @@ import Icons from 'unplugin-icons/vite'
import IconsResolver from 'unplugin-icons/resolver' import IconsResolver from 'unplugin-icons/resolver'
import Components from 'unplugin-vue-components/vite' import Components from 'unplugin-vue-components/vite'
import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers' import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers'
import monacoEditorPlugin from 'vite-plugin-monaco-editor'
import { NodeModulesPolyfillPlugin } from '@esbuild-plugins/node-modules-polyfill' import { NodeModulesPolyfillPlugin } from '@esbuild-plugins/node-modules-polyfill'
import { FileSystemIconLoader } from 'unplugin-icons/loaders' import { FileSystemIconLoader } from 'unplugin-icons/loaders'
@ -180,13 +179,6 @@ export default defineNuxtConfig({
}), }),
], ],
}), }),
monacoEditorPlugin({
languageWorkers: ['json'],
// customWorkers: [{ label: 'sql', entry: 'monaco-sql-languages/out/esm/sql/sql.worker.js' }],
customDistPath: (root: string, buildOutDir: string) => {
return `${buildOutDir}/` + `monacoeditorwork`
},
}),
PurgeIcons({ PurgeIcons({
/* PurgeIcons Options */ /* PurgeIcons Options */
includedCollections: ['emojione'], includedCollections: ['emojione'],

Loading…
Cancel
Save