使用ngx-monaco-editor浏览器代码编辑器不显示问题求助
解决ngx-monaco-editor无法显示的问题
从控制台错误来看,核心问题是无法加载monaco-editor的资源文件,以下是针对性的排查和修复步骤:
1. 确认依赖正确安装
确保已安装ngx-monaco-editor及依赖的monaco-editor:
npm install ngx-monaco-editor monaco-editor --save
若使用yarn:
yarn add ngx-monaco-editor monaco-editor
2. 修正baseUrl配置
你当前配置的baseUrl: 'app-name/assets'大概率不符合实际资源路径:
- 开发环境下,monaco-editor资源默认会被拷贝到
assets/monaco-editor目录,因此baseUrl应设为'assets'(或直接省略,默认值即为'./assets')。 - 生产构建时,需在
angular.json中配置资源拷贝规则,将node_modules中的monaco-editor资源复制到输出目录:
在angular.json的projects -> [你的项目名] -> architect -> build -> options -> assets数组内添加:{ "glob": "**/*", "input": "node_modules/monaco-editor", "output": "assets/monaco-editor" }
修正后的app.module配置示例:
import { MonacoEditorModule, NgxMonacoEditorConfig } from 'ngx-monaco-editor'; const monacoConfig: NgxMonacoEditorConfig = { defaultOptions: { scrollBeyondLastLine: false }, onMonacoLoad: () => { console.log((<any>window).monaco); } }; @NgModule({ ... imports: [ ... MonacoEditorModule.forRoot(monacoConfig) ], }) export class AppModule {}
3. 确保FormsModule已导入
由于你使用了[(ngModel)]双向绑定,必须在模块中导入FormsModule:
import { FormsModule } from '@angular/forms'; @NgModule({ ... imports: [ ... FormsModule, MonacoEditorModule.forRoot(monacoConfig) ], }) export class AppModule {}
4. 验证容器高度有效性
虽然已设置父div高度为500px、编辑器高度为100%,可通过添加边框验证样式是否生效:
<div style="height: 500px; border: 1px solid red"> <ngx-monaco-editor style="height: 100%" [options]="editorOptions" [(ngModel)]="code"></ngx-monaco-editor> </div>
若边框正常显示,说明高度配置无误;若边框不显示,排查是否有其他样式影响父容器高度。
完成以上步骤后重启开发服务,即可正常加载monaco编辑器。
内容的提问来源于stack exchange,提问作者Rodney Mupanduki
相关产品推荐
相关产品推荐

