背景
某天产品要求在项目的某个页面添加一个代码编辑器,包含编辑器常见的功能。看完需求,想到了强大的Monaco Editor。按照官方文档进行配置开发,就在自己觉得大功告成之际,右击编辑框,发现功能菜单是英文状态,然后就开启了我的右键功能菜单汉化之路。
问题剖析
在Monaco Editor的整个使用配置过程中,我没有添加关于本地语言的配置,所以目前使用的应该是默认配置。
所以目前解决问题的思路是:
- 查看官方API文档寻找关于本地语言的配置
- 寻找可以进行本地语言配置的第三方插件/库
按照以上思路首先在Monaco Editor官方文档中进行一番搜索尝试无果后,开始转向相关第三方插件/库的寻找,最终找到了
monaco-editor-esm-webpack-plugin和monaco-editor/loader
解决方案
方案一:使用monaco-editor-esm-webpack-plugin
依赖下载
vue.config.js文件
xx.vue文件
效果图如下:
从效果图我们发现功能菜单的”命令面板“是中文的了,但是”Copy“还是英文
方案二:使用monaco-editor/loader
依赖下载
xx.vue
至此已经完成。浏览下效果图
从效果图来看已经达到了我们的目标。但仔细看上方代码发现我们用的monaco实例是monaco-editor/loader自动从CDN下载后返回的,
如果我们想通过npm包的方式使用应该怎么做呢?废话不多说,直接上代码
版本
"monaco-editor": "^0.30.1"
"monaco-editor/loader": "^1.3.2"
"node": "v14.15.4"
"webpack": "v4.28.4"
小结
monaco-editor/loader会自动处理配置和加载monaco源码,并且它的使用方式与项目打包方式解耦,只需在需要使用的文件中引入即可。使用方式灵活,适用范围更加广阔。