私は NW.JS で Monaco を使用しているため、エディターを使用するための Electron の要件は似ています。これには、Monaco loader.js スクリプトをロードする前に、現在のコンテキストの require 関数を永続化する必要があります。このスクリプトは、カスタムのモナコ AMD ローダーをグローバルな require に設定するためです。loader.js をロードした直後に、Monaco ローダーを別個のグローバル変数 (おそらく meRequire) に永続化し、最初に永続化されたものに NW.JS グローバルの require を復元します。
<script type="text/javascript">
// persist global require function before monaco loader.js overwrites it
tempRequire = require;
</script>
<script src="https://microsoft.github.io/monaco-editor/node_modules/monaco-editor/min/vs/loader.js" type="text/javascript"></script>
<script type="text/javascript">
// persist monaco's custom loader
meRequire = require;
// restore global require function
require = tempRequire;
// configure monaco's loader
meRequire.config(
{
baseUrl: 'https://microsoft.github.io/monaco-editor/node_modules/monaco-editor/min/'
} );
</script>
エディター インスタンスを作成するには、meRequire を使用するだけです
meRequire( [ 'vs/editor/editor.main' ], () =>
{
// create an editor instance
let editor = monaco.editor.create( document.getElementById('elementId'), {} );
})
Monaco-editor インスタンスを作成するためのノックアウト バインディングを作成し、GitHub に配置しました。ノードや npm パッケージを使用せず、すべてのソースをダウンロードします。https://github.com/simpert/MonacoEditorKnockoutBindingHandler.gitで見つけることができます。
また、エディターのプレイグラウンドは、エディターの使用方法の例の優れたソースであり、GitHub のサンプルは、NW.JS と Electon の使用例を示しています。