# 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

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...