diff --git a/dashboard/package.json b/dashboard/package.json index 7b4a7f071..f463a773b 100644 --- a/dashboard/package.json +++ b/dashboard/package.json @@ -65,6 +65,7 @@ "sass-loader": "13.3.2", "typescript": "5.1.6", "vite": "4.4.9", + "vite-plugin-monaco-editor": "1.1.0", "vue-cli-plugin-vuetify": "2.5.8", "vue-tsc": "1.8.8", "vuetify-loader": "^2.0.0-alpha.9" diff --git a/dashboard/pnpm-lock.yaml b/dashboard/pnpm-lock.yaml index ea8636c61..6c47267d7 100644 --- a/dashboard/pnpm-lock.yaml +++ b/dashboard/pnpm-lock.yaml @@ -159,6 +159,9 @@ importers: vite: specifier: 4.4.9 version: 4.4.9(@types/node@20.19.32)(sass@1.66.1)(terser@5.46.0) + vite-plugin-monaco-editor: + specifier: 1.1.0 + version: 1.1.0(monaco-editor@0.52.2) vue-cli-plugin-vuetify: specifier: 2.5.8 version: 2.5.8(sass-loader@13.3.2(sass@1.66.1)(webpack@5.105.0))(vue@3.3.4)(vuetify-loader@2.0.0-alpha.9(@vue/compiler-sfc@3.3.4)(vue@3.3.4)(vuetify@3.7.11)(webpack@5.105.0))(webpack@5.105.0) @@ -2568,6 +2571,11 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + vite-plugin-monaco-editor@1.1.0: + resolution: {integrity: sha512-IvtUqZotrRoVqwT0PBBDIZPNraya3BxN/bfcNfnxZ5rkJiGcNtO5eAOWWSgT7zullIAEqQwxMU83yL9J5k7gww==} + peerDependencies: + monaco-editor: '>=0.33.0' + vite-plugin-vuetify@1.0.2: resolution: {integrity: sha512-MubIcKD33O8wtgQXlbEXE7ccTEpHZ8nPpe77y9Wy3my2MWw/PgehP9VqTp92BLqr0R1dSL970Lynvisx3UxBFw==} engines: {node: '>=12'} @@ -5297,6 +5305,10 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 + vite-plugin-monaco-editor@1.1.0(monaco-editor@0.52.2): + dependencies: + monaco-editor: 0.52.2 + vite-plugin-vuetify@1.0.2(vite@4.4.9(@types/node@20.19.32)(sass@1.66.1)(terser@5.46.0))(vue@3.3.4)(vuetify@3.7.11): dependencies: '@vuetify/loader-shared': 1.7.1(vue@3.3.4)(vuetify@3.7.11) diff --git a/dashboard/src/main.ts b/dashboard/src/main.ts index 687166654..07f7518d6 100644 --- a/dashboard/src/main.ts +++ b/dashboard/src/main.ts @@ -9,9 +9,12 @@ import '@/scss/style.scss'; import VueApexCharts from 'vue3-apexcharts'; import print from 'vue3-print-nb'; -import { loader } from '@guolao/vue-monaco-editor' +import { loader } from '@guolao/vue-monaco-editor'; +import * as monaco from 'monaco-editor'; import axios from 'axios'; +loader.config({ monaco }); + // 初始化新的i18n系统,等待完成后再挂载应用 setupI18n().then(() => { console.log('🌍 新i18n系统初始化完成'); @@ -108,9 +111,3 @@ window.fetch = (input: RequestInfo | URL, init?: RequestInit) => { } return _origFetch(input, { ...init, headers }); }; - -loader.config({ - paths: { - vs: 'https://cdn.jsdelivr.net/npm/monaco-editor@0.54.0/min/vs', - }, -}) diff --git a/dashboard/vite.config.ts b/dashboard/vite.config.ts index b53e0310d..29f911926 100644 --- a/dashboard/vite.config.ts +++ b/dashboard/vite.config.ts @@ -2,6 +2,7 @@ import { fileURLToPath, URL } from 'url'; import { defineConfig } from 'vite'; import vue from '@vitejs/plugin-vue'; import vuetify from 'vite-plugin-vuetify'; +import monacoEditorPlugin from 'vite-plugin-monaco-editor'; // https://vitejs.dev/config/ export default defineConfig({ @@ -15,7 +16,8 @@ export default defineConfig({ }), vuetify({ autoImport: true - }) + }), + monacoEditorPlugin({}) ], resolve: { alias: {