目次
Monaco Editor
問題
既知の問題
npm install monaco-editor
ログイン後にコピー
をインストール中 " >
npm install monaco-editor
ログイン後にコピー
をインストール中
開発
チートシート
ソースから monaco-editor-core を実行する
ソースからプラグイン (例: monaco-typescript) を実行する
新しい monaco-editor バージョンを出荷する
新しい monaco-editor-core バージョンを出荷する (必要な場合)
プラグインに新しい monaco-editor-core を採用する (必要な場合)
新しい monaco-editor-core を採用します
パッケージ monaco-editor
パッケージ化されたビットを試してみる
パッケージ化されたビットを公開する
ソースから Web サイトを実行する
プレイグラウンドサンプルの生成
ウェブサイトを公開する
License
ホームページ ウェブフロントエンド htmlチュートリアル monaco-editor: ブラウザベースのコード editor_html/css_WEB-ITnose

monaco-editor: ブラウザベースのコード editor_html/css_WEB-ITnose

Jun 24, 2016 am 11:14 AM

Monaco Editor

Monaco Editor は、VS Code を強化するコード エディターです。コード エディターの機能を説明する優れたページは、ここにあります。

問題

問題を作成するときは、エディタのバージョンと問題が発生しているブラウザについて言及してください。

このリポジトリには、物事を結び付けるためのスクリプトのみが含まれています。ソースが存在する実際のリポジトリに対して問題を作成してください。コードの寿命:

  • monaco-editor-core:Issues -- npm モジュール (エディタ自体の問題)
  • monaco-typescript:Issues -- npm モジュール (JavaScript または TypeScript 言語サポートの問題)
  • monaco-langages:問題 -- npm モジュール (bat、coffee script、cpp、csharp、fsharp、go、ini、jade、lua、objective-c、powershell、python、r、ruby、sql、swift、vb、または xml の問題)

既知の問題

IE では、エディターを body 要素で完全に囲む必要があります。そうしないと、マウス操作に対して行うヒット テストが機能しません。 F12 を使用して body 要素をクリックしてこれを検査し、エディターを囲んでいることを視覚的に確認できます。

npm install monaco-editor
ログイン後にコピー
をインストール中

次の内容が得られます:

    inside dev : バンドルされ、縮小されていません
  • inside min : バンドルされ、縮小されています
  • min-maps 内: min のソースマップ
  • monaco.d.ts : これはエディターの API を指定します (これが実際にバージョン管理されているもので、その他はすべてプライベートとみなされ、リリースによって壊れる可能性があります)。
開発バージョンに対して開発し、運用環境では最小バージョンを使用することをお勧めします。

統合

これは、エディターを埋め込む最も基本的な HTML ページです。より多くのサンプルは monaco-editor-sample で入手できます。

<!DOCTYPE html><html><head>    <meta http-equiv="X-UA-Compatible" content="IE=edge" />    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" ></head><body><div id="container" style="width:800px;height:600px;border:1px solid grey"></div><script src="monaco-editor/min/vs/loader.js"></script><script>    require.config({ paths: { 'vs': 'monaco-editor/min/vs' }});    require(['vs/editor/editor.main'], function() {        var editor = monaco.editor.create(document.getElementById('container'), {            value: [                'function x() {',                '\tconsole.log("Hello world!");',                '}'            ].join('\n'),            language: 'javascript'        });    });</script></body></html>
ログイン後にコピー

クロスドメインの統合

HTML とは異なるドメイン (CDN など) で .js をホストしている場合は、Monaco Editor がスマート言語機能用の Web ワーカーを作成することを知っておく必要があります。クロスドメイン Web ワーカーは許可されていませんが、Web ワーカーのロードをプロキシして動作させる方法は次のとおりです:

<!--    Assuming the HTML lives on www.mydomain.com and that the editor is hosted on www.mycdn.com--><script type="text/javascript" src="http://www.mycdn.com/monaco-editor/min/vs/loader.js"></script><script>    require.config({ paths: { 'vs': 'http://www.mycdn.com/monaco-editor/min/vs' }});    // Before loading vs/editor/editor.main, define a global MonacoEnvironment that overwrites    // the default worker url location (used when creating WebWorkers). The problem here is that    // HTML5 does not allow cross-domain web workers, so we need to proxy the instantion of    // a web worker through a same-domain script    window.MonacoEnvironment = {        getWorkerUrl: function(workerId, label) {            return 'monaco-editor-worker-loader-proxy.js';        }    };    require(["vs/editor/editor.main"], function () {        // ...    });</script><!--    Create http://www.mydomain.com/monaco-editor-worker-loader-proxy.js with the following content:        self.MonacoEnvironment = {            baseUrl: 'http://www.mycdn.com/monaco-editor/min/'        };        importScripts('www.mycdn.com/monaco-editor/min/vs/base/worker/workerMain.js');    That's it. You're good to go! :)-->
ログイン後にコピー
Documentation

monaco.d.ts で説明されている API に対してプログラミングしてください。

ここで実際のエディターをご覧ください。

ここで完全な HTML サンプルを見つけてください。

ここで API サンプルをご覧ください。

ここで Monarch トークナイザーを作成します。

FAQ

Q: VS Code と Monaco Editor の関係は何ですか?

A: Monaco Editor は、コードが Web で実行するために必要なサービスの周りにいくつかの shim を使用して、VS Code のソースから直接生成されます。

Q: VS Code のバージョンと Monaco Editor のバージョンの間にはどのような関係がありますか?

A: なし。 Monaco Editor はライブラリであり、ソース コードを直接反映します。

Q: VS Code の拡張機能を作成しましたが、ブラウザーの Monaco Editor で動作しますか?

A: いいえ

Q: なぜこれらの Web ワーカーが存在するのでしょうか?また、なぜ私が気にする必要があるのでしょうか?

A: 言語サービスは、UI スレッドの外側で重いものを計算するために Web ワーカーを作成します。リソースのオーバーヘッドという点ではほとんどコストがかからず、機能させる限り、あまり心配する必要はありません (上記のクロスドメインの場合を参照)。

Q: このloader.js とは何ですか? ? require.jsを使用できますか?

A: VS Code で使用する AMD ローダーです。はい

開発

チートシート

  • npm run simpleserver を使用した simpleserver
  • npm run リリースを使用したリリース
  • npm run を使用した Web サイト

ソースから monaco-editor-core を実行する

  • クローン https://github.コム$/src/vscode/ の /Microsoft/vscode (このリポジトリの隣)
  • $/src/vscode> を実行します。 gulp watch
  • run $/src/monaco-editor> npm run simpleserver
  • $/src/monaco-editor/test/index.html を編集し、var RUN_EDITOR_FROM_SOURCE = true; に設定します。
  • http://localhost:8080/monaco-editor/test/

ソースからプラグイン (例: monaco-typescript) を実行する

  • $ で https://github.com/Microsoft/monaco-typescript をクローンします/src/monaco-typescript (このリポジトリの隣)
  • $/src/monaco-typescript> を実行します。 npm run watch
  • run $/src/monaco-editor> npm run simpleserver
  • $/src/monaco-editor/test/index.html を編集し、 RUN_PLUGINS_FROM_SOURCE['monaco-typescript'] = true; に設定します。
  • http://localhost:8080/monaco-editor/test/

新しい monaco-editor バージョンを出荷する

新しい monaco-editor-core バージョンを出荷する (必要な場合)

  • バンプ バージョンを https: //github.com/Microsoft/vscode/blob/master/build/monaco/package.json
    • API の重大な変更がある場合は、メジャー (または 0.x.y のマイナー) をバンプします
  • すべてローカルにプッシュしますリモートへの変更
  • npm package $/src/vscode> を生成します。 gulp editor-distro
  • npm パッケージを公開 $/src/vscode/out-monaco-editor-core> npm public

プラグインに新しい monaco-editor-core を採用する (必要な場合)

  • https://github.com/Microsoft/monaco-typescript
  • https://github.com/Microsoft/monaco-langages

新しい monaco-editor-core を採用します

  • $/src/monaco-editor/package.json を編集し、(必要に応じて) バージョンを更新します:
    • monaco-editor-core
    • monaco-typescript
    • monaco-言語
  • $/src/monaco-editor/package.json のバージョンを更新します
    • monaco-editor-core と同様に保つように努めますが、パッチのバージョンを変えるだけかもしれません。
  • $/src/monaco-editor> を実行して最新の DEPS を取得します。 npm インストール 。

パッケージ monaco-editor

  • $/src/monaco-editor> を実行します。 npm run release

パッケージ化されたビットを試してみる

  • open http://localhost:8080/monaco-editor/test/index-release.html
  • open http://localhost:8080/monaco-editor/test/スモークテスト-リリース.html

パッケージ化されたビットを公開する

  • $/src/monaco-editor/release> を実行します。 npm public

ソースから Web サイトを実行する

  • run $/src/monaco-editor> npm run release
  • open http://localhost:8080/monaco-editor/website/

プレイグラウンドサンプルの生成

  • edi​​t $/src/monaco-editor/website/playground/playground.mdoc
  • run $ /src/monaco-editor>遊び場のサンプルを飲み込む

ウェブサイトを公開する

  • $/src/monaco-editor> を実行します。 npm run website
  • gh-pages ブランチを強制プッシュします: $/src/monaco-editor-website> git Push Origin gh-pages --force

License

MIT

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

&lt; Progress&gt;の目的は何ですか 要素? &lt; Progress&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:34 PM

この記事では、HTML&lt; Progress&gt;について説明します。要素、その目的、スタイリング、および&lt; meter&gt;との違い要素。主な焦点は、&lt; Progress&gt;を使用することです。タスクの完了と&lt; Meter&gt; statiの場合

&lt; datalist&gt;の目的は何ですか 要素? &lt; datalist&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:33 PM

この記事では、HTML&lt; Datalist&GT;について説明します。オートコンプリートの提案を提供し、ユーザーエクスペリエンスの改善、エラーの削減によりフォームを強化する要素。

HTML5のクロスブラウザー互換性のベストプラクティスは何ですか? HTML5のクロスブラウザー互換性のベストプラクティスは何ですか? Mar 17, 2025 pm 12:20 PM

記事では、HTML5クロスブラウザーの互換性を確保するためのベストプラクティスについて説明し、機能検出、プログレッシブエンハンスメント、およびテスト方法に焦点を当てています。

&lt; meter&gt;の目的は何ですか 要素? &lt; meter&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:35 PM

この記事では、html&lt; meter&gt;について説明します。要素は、範囲内でスカラーまたは分数値を表示するために使用され、Web開発におけるその一般的なアプリケーション。それは差別化&lt; Meter&gt; &lt; Progress&gt;およびex

HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか? HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか? Mar 17, 2025 pm 12:27 PM

この記事では、ブラウザのユーザー入力を直接検証するために、必要、パターン、MIN、MAX、および長さの制限などのHTML5フォーム検証属性を使用して説明します。

HTML5&lt; time&gt;を使用するにはどうすればよいですか 日付と時刻を意味的に表す要素? HTML5&lt; time&gt;を使用するにはどうすればよいですか 日付と時刻を意味的に表す要素? Mar 12, 2025 pm 04:05 PM

この記事では、html5&lt; time&gt;について説明します。セマンティックデート/時刻表現の要素。 人間の読み取り可能なテキストとともに、マシンの読みやすさ(ISO 8601形式)のDateTime属性の重要性を強調し、Accessibilitを増やします

ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? Mar 20, 2025 pm 05:56 PM

この記事では、モバイルデバイスのレスポンシブWebデザインに不可欠なViewportメタタグについて説明します。適切な使用により、最適なコンテンツのスケーリングとユーザーの相互作用が保証され、誤用が設計とアクセシビリティの問題につながる可能性があることを説明しています。

&lt; iframe&gt;の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? &lt; iframe&gt;の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? Mar 20, 2025 pm 06:05 PM

この記事では、&lt; iframe&gt;外部コンテンツをWebページ、その一般的な用途、セキュリティリスク、およびオブジェクトタグやAPIなどの代替案に埋め込む際のタグの目的。

See all articles