# CodeEditor-MPNACO **Repository Path**: cathyli2021/code-editor-mpnaco ## Basic Information - **Project Name**: CodeEditor-MPNACO - **Description**: Monaco-Editor 是一个由 Microsoft 开发的 Web 代码编辑器,它是 Visual Studio Code 的浏览器版本。在 Vue 项目中集成 Monaco-Editor 可以提供代码编辑、语法高亮、智能提示等功能。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2024-05-27 - **Last Updated**: 2024-11-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # easy-codeeditor # Monaco在线代码编辑器使用总结 ## 1.什么是Monaco Monaco编辑器是为VS代码提供支持的代码编辑器 [官方API文档](https://microsoft.github.io/monaco-editor/api/modules/monaco.editor.html) ## 2.Monaco Editor安装及使用 #### 2.1安装 ```cmd npm install monaco-editor --save-dev npm install monaco-editor-webpack-plugin --save-dev ``` #### 2.2配置vue.config.js ```js const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin') module.exports = { configureWebpack: { plugins: [ new MonacoWebpackPlugin() ] } } ``` #### 2.3 开始使用 ##### 2.3.1.vue文件中导入monaco ```js import * as monaco from 'monaco-editor' ``` ##### 2.3.2.创建代码编辑区域 ```html
``` #### 2.3.3.初始化container ##### 2.3.3.1 准备monaco基础配置 ```js data () { return { // 主要配置 defaultOpts: { // 编辑器的值 value: '', // 编辑器主题:vs, hc-black, or vs-dark,更多选择详见官网 theme: 'vs-dark', // 右侧不显示编辑器预览框 roundedSelection: true, // 自动缩进 autoIndent: true , // 是否只读 readOnly: false, // 语言类型java,c,php更多选择详见官网 language: 'javascript', } // 编辑器对象 monacoEditor: {} } }, ``` ##### 2.3.3.2 初始化monaco编辑器 ```js methods: { init () { // 初始化container的内容,销毁之前生成的编辑器 this.$refs.container.innerHTML = '' // 生成编辑器配置 let editorOptions = Object.assign(this.defaultOpts, this.opts) // 生成编辑器对象 this.monacoEditor = monaco.editor.create(this.$refs.container, editorOptions) // 编辑器内容发生改变时触发 this.monacoEditor.onDidChangeModelContent(() => { this.$emit('change', this.monacoEditor.getValue()) }) }, // 手动编辑器中的内容 getValue() { this.$message.info(this.$refs.monaco.getVal()) }, } ``` ##### 整体源码: 1) **monacoeditor.vue** ```html ``` 2) **App.vue** ```html