web-dev-qa-db-ja.com

エースエディタ「定義が定義されていません」

エースエディター をアプリに追加しようとしています。 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>
17
Stinky

すでにソースがある場合は、それでも簡単に実行できます。すべてのエースソースをコピーしたディレクトリに移動するだけです。

次に、次のようにします。

npm install
node Makefile.dryice.js

詳細については、wikiを参照してください https://github.com/ajaxorg/ace/wiki/Building-ace

7
Shaurav Garg

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>
5
Mark Fielbig

DOMloadハンドラーにwindow.define = ace.define;を入れてハッキングしました。

3
ulu