gpt4 book ai didi

javascript - 如何将 Monaco 与 Vue.js 集成?

转载 作者:行者123 更新时间:2023-12-04 01:47:49 25 4
gpt4 key购买 nike

我创建了一个新的 vue 应用程序并运行 npm install -s monaco-editor ,然后我将 App.vue 更改为如下所示:

<template>
<div id="app" style="width: 500px; height: 500px;">
<div ref="editor" style="width: 500px; height: 500px;"></div>
</div>
</template>

<script>
import * as monaco from 'monaco-editor';

export default {
name: 'app',
async mounted() {
const el = this.$refs.editor;
this.editor = monaco.editor.create(el, {
value: "console.log('hello world');",
language: 'javascript',
});
},
};
</script>

当我运行应用程序时,我在 JavaScript 控制台中看到以下内容:
Could not create web worker(s). Falling back to loading web worker code in main thread, which might cause UI freezes. Please see https://github.com/Microsoft/monaco-editor#faq simpleWorker.js:31
You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker 2 simpleWorker.js:33
Error: "Unexpected usage"
loadForeignModule editorSimpleWorker.js:494
_foreignProxy webWorker.js:54
languageFeatures.js:209
_doValidate languageFeatures.js:209

我已经尝试搜索错误,但大多数线程似乎都专注于通过 file:///访问文件,我没有这样做(我正在访问节点网络服务器)。

此外,除非明确指定高度,否则编辑器无法正确呈现 - 我认为这不是预期的行为。

如何让 monaco-editor 在 Vue 中正常工作?我想避免使用非官方的第三方包装器,例如 https://github.com/egoist/vue-monaco如果可能,出于支持原因。

Node/Vue 新手,请善待!

最佳答案

尝试指定摩纳哥 webpack webpack 配置中的插件:

const monacoWebpackPlugin = require('monaco-editor/webpack')

...

plugins: [
new monacoWebpackPlugin()
]

或安装 monaco-editor-webpack-plugin并尝试使用它:
const monacoWebpackPlugin = require('monaco-editor-webpack-plugin')

...

plugins: [
new monacoWebpackPlugin()
]

至于 heightwidth ,您可以收听窗口调整大小并调用 editor.layout()或计算容器大小并将大小传递给 editor.layout()方法 (1) .

或者,您可以尝试类似主题中其他已发布答案的内容,例如:
<div ref="editor" class="monaco-editor"></div>
.monaco-editor {
height: 100vh;
overflow: hidden;
}

body {
margin: 0;
padding: 0;
}


或者是这样的:
.monaco-editor {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
max-height: 100% !important;
margin: 0;
padding: 0;
overflow: hidden;
}

关于javascript - 如何将 Monaco 与 Vue.js 集成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58592128/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com