完全に名前空間を持つ大規模な JavaScript アプリケーションがあります。require.js を使用してすべてをロードします (名前空間にライブが必要です)。次に、grunt を使用して、ライブラリを含む 100 +/- js ファイルを 1 つの縮小ファイルにコンパイルします。
私はace.jsをロードすることができます
define(['ace/ace'], function (ace) {....
次のようなエディタを作成できます
var editor = ace.edit("editor");
ただし、モードとテーマをロードするかどうかはわかりません。私が何かを試してみると..
editor.setTheme("ace/theme/monokai");
editor.getSession().setMode("ace/mode/javascript");
要求は、Web ルートでファイルを見つけようとします。
mysite.com/theme-monokai.js
ただし、これらのファイルは残りのファイルと一緒にコンパイルし、1 つの大きな縮小ファイルに入れる必要があります。
defineステートメントにテーマとモードを含める必要があると思いますが、試してみましたが、次のようなテーマオブジェクトを取得できます
define(['ace/mode-javascript'], function (mode_js) {
console.log('mode loaded just fine')
console.log(mode_js)
...
ただし、オブジェクトを setTheme および setMode 関数に渡そうとしてもうまくいきません。
editor.setTheme(ace_theme);
editor.getSession().setMode(mode_js);
これらすべての最終結果は、エース エディターが機能しているものの、強調表示やテーマがないということです。行番号が機能し、タブが機能します。これらがメインのace.jsにあるのか、それとも依存関係を正常にロードしていて、ロードできないのか、ロードされた方法にテーマ/モードパスをマップできないのかはわかりません.
config でテーマとモードのデフォルトを設定する方法はありますか? これは役立つかもしれません。誰かが私が欠けているものを知っていますか?
ありがとう。