5 changed files with 62 additions and 4 deletions
@ -1,6 +1,6 @@ |
|||
<script> |
|||
import Inner from './YvSrcEditorInner.vue' |
|||
import { defineAsyncComponent } from 'vue' |
|||
|
|||
// 异步加载 yv-src-editor-inner.vue 组件 |
|||
export default Inner |
|||
export default defineAsyncComponent(() => import('./YvSrcEditorInner.vue')) |
|||
</script> |
|||
|
|||
@ -0,0 +1,38 @@ |
|||
/** |
|||
* monaco 加载完成之后会调用此函数 |
|||
* @param monaco |
|||
*/ |
|||
export function setupMonacoEditor(monaco: any) { |
|||
if (!monaco || monaco.__isExtended) { |
|||
return |
|||
} |
|||
// 启用诊断信息(语法、语义错误提示)
|
|||
monaco.languages.typescript.typescriptDefaults.setDiagnosticsOptions({ |
|||
noSemanticValidation: false, |
|||
noSyntaxValidation: false, |
|||
noSuggestionDiagnostics: false |
|||
}) |
|||
|
|||
// 注入 mylib 模块的类型定义
|
|||
monaco.languages.typescript.typescriptDefaults.addExtraLib( |
|||
` |
|||
declare module 'mylib' { |
|||
export function greet(name: string): void; |
|||
export const version: string; |
|||
} |
|||
`,
|
|||
'file:///node_modules/mylib/index.d.ts' |
|||
) |
|||
|
|||
// 配置 TypeScript 编译器选项
|
|||
monaco.languages.typescript.typescriptDefaults.setCompilerOptions({ |
|||
target: monaco.languages.typescript.ScriptTarget.Latest, |
|||
module: monaco.languages.typescript.ModuleKind.ESNext, |
|||
moduleResolution: monaco.languages.typescript.ModuleResolutionKind.NodeJs, |
|||
noEmit: true, |
|||
strict: true, |
|||
lib: ['esnext'], |
|||
types: [] // 不加载默认 DOM 类型
|
|||
}) |
|||
monaco.__isExtended = true |
|||
} |
|||
Loading…
Reference in new issue