feat: switch Monaco editor from CDN to local deployment

Co-authored-by: Soulter <37870767+Soulter@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-03-01 15:15:03 +00:00
parent b8e83b772d
commit 2a7c8b44bf
4 changed files with 20 additions and 8 deletions
+1
View File
@@ -65,6 +65,7 @@
"sass-loader": "13.3.2", "sass-loader": "13.3.2",
"typescript": "5.1.6", "typescript": "5.1.6",
"vite": "4.4.9", "vite": "4.4.9",
"vite-plugin-monaco-editor": "1.1.0",
"vue-cli-plugin-vuetify": "2.5.8", "vue-cli-plugin-vuetify": "2.5.8",
"vue-tsc": "1.8.8", "vue-tsc": "1.8.8",
"vuetify-loader": "^2.0.0-alpha.9" "vuetify-loader": "^2.0.0-alpha.9"
+12
View File
@@ -159,6 +159,9 @@ importers:
vite: vite:
specifier: 4.4.9 specifier: 4.4.9
version: 4.4.9(@types/node@20.19.32)(sass@1.66.1)(terser@5.46.0) 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: vue-cli-plugin-vuetify:
specifier: 2.5.8 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) 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: vfile@6.0.3:
resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} 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: vite-plugin-vuetify@1.0.2:
resolution: {integrity: sha512-MubIcKD33O8wtgQXlbEXE7ccTEpHZ8nPpe77y9Wy3my2MWw/PgehP9VqTp92BLqr0R1dSL970Lynvisx3UxBFw==} resolution: {integrity: sha512-MubIcKD33O8wtgQXlbEXE7ccTEpHZ8nPpe77y9Wy3my2MWw/PgehP9VqTp92BLqr0R1dSL970Lynvisx3UxBFw==}
engines: {node: '>=12'} engines: {node: '>=12'}
@@ -5297,6 +5305,10 @@ snapshots:
'@types/unist': 3.0.3 '@types/unist': 3.0.3
vfile-message: 4.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): 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: dependencies:
'@vuetify/loader-shared': 1.7.1(vue@3.3.4)(vuetify@3.7.11) '@vuetify/loader-shared': 1.7.1(vue@3.3.4)(vuetify@3.7.11)
+4 -7
View File
@@ -9,9 +9,12 @@ import '@/scss/style.scss';
import VueApexCharts from 'vue3-apexcharts'; import VueApexCharts from 'vue3-apexcharts';
import print from 'vue3-print-nb'; 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'; import axios from 'axios';
loader.config({ monaco });
// 初始化新的i18n系统,等待完成后再挂载应用 // 初始化新的i18n系统,等待完成后再挂载应用
setupI18n().then(() => { setupI18n().then(() => {
console.log('🌍 新i18n系统初始化完成'); console.log('🌍 新i18n系统初始化完成');
@@ -108,9 +111,3 @@ window.fetch = (input: RequestInfo | URL, init?: RequestInit) => {
} }
return _origFetch(input, { ...init, headers }); return _origFetch(input, { ...init, headers });
}; };
loader.config({
paths: {
vs: 'https://cdn.jsdelivr.net/npm/monaco-editor@0.54.0/min/vs',
},
})
+3 -1
View File
@@ -2,6 +2,7 @@ import { fileURLToPath, URL } from 'url';
import { defineConfig } from 'vite'; import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue'; import vue from '@vitejs/plugin-vue';
import vuetify from 'vite-plugin-vuetify'; import vuetify from 'vite-plugin-vuetify';
import monacoEditorPlugin from 'vite-plugin-monaco-editor';
// https://vitejs.dev/config/ // https://vitejs.dev/config/
export default defineConfig({ export default defineConfig({
@@ -15,7 +16,8 @@ export default defineConfig({
}), }),
vuetify({ vuetify({
autoImport: true autoImport: true
}) }),
monacoEditorPlugin({})
], ],
resolve: { resolve: {
alias: { alias: {