# Monaco Editor 使用
创始人
2024-03-20 05:55:29
0

Monaco Editor 使用

文章目录

  • Monaco Editor 使用
    • 安装依赖
        • 版本问题
          • vue2
          • Vue3
      • webpack-dev-server
      • monaco-editor-webpack-plugin
        • Version Matrix
    • 集成步骤
      • Vue2 配置 monaco-editor-webpack-plugin 插件
      • Vue3 vue.config.js
      • 测试页面实例
      • 属性说明
      • 支持的语言类型
    • 报错解决
      • 控制台报错
    • 效果图
    • 源代码地址

  • Monaco EditorVS Code底层的代码编辑器,开源协议是MIT,支持EdgeChromeFirefoxSafariOpera浏览器,但是不支持移动端浏览器或移动端框架。
  • VSCode中的代码编辑器和Monaco Editor使用的很多相同的核心模块,你可以将Monaco Editor用到自己的项目中,作为云端编辑器的支持。

安装依赖

版本问题

vue2
  • 注意版本问题:版本问题很坑爹
"monaco-editor": "^0.30.1",
"monaco-editor-webpack-plugin": "^6.0.0",
"webpack": "^3.6.0",
Vue3
npm install monaco-editor --save
npm install monaco-editor-webpack-plugin --save   //必须局部安装,不能全局安装否则会导致代码不高亮,不补全

webpack-dev-server

webpack-dev-server v4.0.0+ 要求 node >= v12.13.0webpack >= v4.37.0(但是我们推荐使用 webpack >= v5.0.0)和 webpack-cli >= v4.7.0

monaco-editor-webpack-plugin

  • 官网:https://www.npmjs.com/package/monaco-editor-webpack-plugin

Version Matrix

monaco-editor-webpack-pluginmonaco-editor
7.*.*>= 0.31.0
6.*.*0.30.*
5.*.*0.29.*
4.*.*0.25.*, 0.26.*, 0.27.*, 0.28.*
3.*.*0.22.*, 0.23.*, 0.24.*
2.*.*0.21.*
1.9.*0.20.*
1.8.*0.19.*
1.7.*0.18.*

集成步骤

Vue2 配置 monaco-editor-webpack-plugin 插件

  • webpack.config.js增加插件配置
const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin')
module.exports = {configureWebpack: {plugins: [new MonacoWebpackPlugin()]}
}

Vue3 vue.config.js

let MonacoWebpackPlugin = require('monaco-editor-webpack-plugin')
// vue.config.js
const vueConfig = {configureWebpack: {// webpack pluginsplugins: [// Ignore all locale files of moment.jsnew MonacoWebpackPlugin()],// if prod, add externals},
}

测试页面实例


属性说明

{value: '', // 编辑器初始显示文字language: 'javascript', // 语言javascript | jsonautomaticLayout: true, // 自动布局theme: 'vs', // 官方自带三种主题vs, hc-black, or vs-darkfoldingStrategy: 'indentation', // 代码可分小段折叠overviewRulerBorder: false, // 不要滚动条的边框lineNumbers: 'off', // 控制行号的出现on | offscrollbar: { // 滚动条设置verticalScrollbarSize: 4, // 竖滚动条horizontalScrollbarSize: 6, // 横滚动条},readOnly: false, // 是否只读 Defaults to false | trueminimap: { // 关闭小地图enabled: false,},cursorStyle: 'line', // 光标样式automaticLayout: false, // 自动布局fontSize: 14, // 字体大小tabSize: 2, // tab缩进长度autoIndent: true, // 自动布局
}

支持的语言类型

在这里插入图片描述

报错解决

  • 注意版本对应

控制台报错

  • 版本问题
  • 报错如下:
editorSimpleWorker.js?db2f:450 Uncaught (in promise) Error: Unexpected usageat EditorSimpleWorker.loadForeignModule (editorSimpleWorker.js?db2f:450:1)at eval (webWorker.js?0a43:38:1)
  • 解决方法
// import * as monaco from 'monaco-editor';// 使用下面的方式引入
import * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js'
// 代码高亮
import 'monaco-editor/esm/vs/basic-languages/javascript/javascript.contribution'
// 引入查找控件
import 'monaco-editor/esm/vs/editor/contrib/find/findController.js' 

效果图

在这里插入图片描述

源代码地址

  • 码云:https://gitee.com/Marlon_Brando/qianduanxuexi/tree/develop/monaco-editor
  • https://gitee.com/Marlon_Brando/qianduanxuexi/tree/develop/monaco-editor-vue3

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...