エースエディター をアプリに追加しようとしています。 githubからダウンロードし、「ace/lib/ace」ディレクトリをアプリのディレクトリにドロップしました。
<script src="ace/lib/ace/ace.js" type="text/javascript" charset="utf-8"></script>"
私のボディタグと:
editor = ace.edit "editor"
スクリプトタグで。 ChromeとFirefoxでページを読み込もうとしましたが、ace.js:46で「defineisnotdefined」と表示されます。ace.jsの行は次のとおりです。
define(function(require, exports, module) {
なぜエースがdefine()関数が存在することを期待しているのか、そしてなぜそれが見つからないのか誰かが知っていますか?これが私の情報源です:
<html>
<body>
<div id="editor">some text</div>
<script src="ace/lib/ace/ace.js" type="text/javascript" charset="utf-8"></script>
<script>
var editor = ace.edit("editor");
</script>
</body>
</html>
すでにソースがある場合は、それでも簡単に実行できます。すべてのエースソースをコピーしたディレクトリに移動するだけです。
次に、次のようにします。
npm install
node Makefile.dryice.js
詳細については、wikiを参照してください https://github.com/ajaxorg/ace/wiki/Building-ace
RequireJS JavaScriptライブラリがページに含まれていないため、このエラーが発生します。
これを修正するには、aceビルドを使用するか、ページにRequireJSを含めます。
RequireJSを含めることを選択した場合、htmlフラグメントは次のようになります。
<!-- Editor will go here -->
<div id="editor"></div>
<!-- Load RequireJS -->
<script src="lib/requirejs/require.js"></script>
<!-- Initialize ace -->
<script>
// Tell RequireJS where ace is located
require.config({
paths: {
'ace': 'lib/ace'
}
});
// Load the ace module
require(['ace/ace'], function(ace) {
// Set up the editor
var editor = ace.edit('editor');
editor.setTheme('ace/theme/monokai');
editor.getSession().setMode('ace/mode/javascript');
// etc...
});
</script>
DOMloadハンドラーにwindow.define = ace.define;
を入れてハッキングしました。