使用monaco-editor浏览器代码编辑器
1.安装依赖
npm i monaco-editor
npm i monaco-editor-webpack-plugin
2.使用示例
<!-- 代码编辑器控件 --><template><div id="monacoEditorContainer" style="width: 100%; height: 300px"></div></template><script>import * as monaco from "monaco-editor";export default {data() {return {standaloneEditorConstructionOptions: {value: '', // 编辑器的值language: 'javascript', //语言theme: 'vs-dark', // 编辑器主题:vs, hc-black, or vs-darkautoIndent: true, // 自动缩进readOnly: false, // 是否只读}};},mounted() {this.createMonacoEditor();},methods: {createMonacoEditor() {// 使用 - 创建 monacoEditor 对象const container = document.querySelector('#monacoEditorContainer')this.monacoEditor = monaco.editor.create(container, this.standaloneEditorConstructionOptions)},},}</script>
需要注意的是要在vue.config.js中配置一下
const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin')
module.exports = {
configureWebpack: {
plugins: [
new MonacoWebpackPlugin()
]
}
}
这样就可以有提示了
然后在页面中引用控件
<template><codeEditref="html"width="500px"height="290px"language="html" /><el-button @click="runCode">运行</el-button><p>实现结果:</p><iframe class="view-panel" id="preview" frameborder="0"></iframe></template><script>....methods:{runCode() {var html = this.$refs.html.monacoEditor.getValue();// var css = this.$refs.css.monacoEditor.getValue();// var js = this.$refs.js.monacoEditor.getValue();let code = `<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Editor</title></head><body>${html}</body>
</html>`;console.log(code);const preview = document.querySelector("#preview");preview.setAttribute("srcdoc", code);},}....</script>
最后再分享一下使用过程中遇到的问题
Unexpected usage at EditorSimpleWorker.loadForeignModule 报错问题处理
具体解决方式是 版本问题 指定版本即可
npm install monaco-editor@0.28.1 --save
npm install monaco-editor-webpack-plugin@4.2.0 --save
参考 https://www.codetd.com/article/14982206
https://huaweicloud.csdn.net/639fefc7dacf622b8df90a35.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了