2

私のプロジェクトでは、requirejs のテキスト プラグインを使用しています。プラグインは適切に機能しますが、オプティマイザーは機能しません。これは私のアプリケーションファイルのテストです:

define([
    'jquery', 
    'underscore',
    //'ui/js/form/LoginForm'
    'text!core/ui/text/form/LoginForm.txt'
], function($, _, template) {
    var initialize = function() {

    }

    return {
        initialize : initialize
    };
});

これは構成です:

require.config({
    paths : {
        jquery      : 'lib/jquery/jquery',
        underscore  : 'lib/underscore/underscore',
        text        : 'lib/require/text'
    },
    shim: {
        underscore: {
            exports: '_'
        }
    }
});

require([
    'app', 
], function(App) {
    App.initialize();
});

そして、これはビルド構成です:

({
    baseUrl: '../scripts',
    mainConfigFile: '../scripts/main.js',
    name: '../scripts/main',
    out: '../scripts/concatenated-modules.js',
    optimize: 'none',
    optimizeAllPluginResources: true
})

アプリケーション自体が機能するため、プロジェクト内のパスが正しいことは間違いありません。ただし、ビルドすると次のようになります。

C:\wamp\www\build>java -classpath js.jar org.mozilla.javascript.too
ls.shell.Main r.js -o build.js

Tracing dependencies for: ../scripts/main
InternalError: The choice of Java constructor append matching JavaScript argumen
t types (null) is ambiguous; candidate constructors are:
    class java.lang.AbstractStringBuilder append(java.lang.StringBuffer)
    class java.lang.AbstractStringBuilder append(java.lang.String)
    class java.lang.AbstractStringBuilder append(java.lang.Object)
    class java.lang.AbstractStringBuilder append(java.lang.CharSequence)
    class java.lang.AbstractStringBuilder append(char[]) (r.js#21883(eval)#307)
In module tree:
    ../scripts/main
      app
        text

InternalError: The choice of Java constructor append matching JavaScript argumen
t types (null) is ambiguous; candidate constructors are:
    class java.lang.AbstractStringBuilder append(java.lang.StringBuffer)
    class java.lang.AbstractStringBuilder append(java.lang.String)
    class java.lang.AbstractStringBuilder append(java.lang.Object)
    class java.lang.AbstractStringBuilder append(java.lang.CharSequence)
    class java.lang.AbstractStringBuilder append(char[]) (r.js#21883(eval)#307)
In module tree:
    ../scripts/main
      app
        text

私の推測では、オプティマイザーは、'text!core/ui/text/form/LoginForm.txt'テキストの依存関係がプラグインを使用していることを認識できなかったのです。

私が欲しかったのはインライン リソースでした。チュートリアルを忠実に実行してきました。すべてのライブラリの最新バージョンがすべて揃っています。

4

2 に答える 2

2

Rhino ツールがテキストを理解するのに問題があるようです! r.js でコンパイルする場合のプラグイン

Nodeに切り替えたところ、すべてが完全に機能しています。

同じ問題が発生する可能性がある他の人は、nodejs Web サイトにアクセスして Windows インストーラーをダウンロードしてください (私は Windows を使用しています)。インストールしたら、コンピューターを再起動するとnode r.js -o app.build.js、requirejs Web サイトで説明されているように使用できます。

于 2013-01-25T10:42:13.333 に答える
0

Rihno for text プラグインに問題があります。ファイル 'core/ui/text/form/LoginForm.txt' を空にしないでください。そのテキスト ファイル内に任意の文字列を追加すると、実行されます。Rhino でテキスト プラグインを使用すると、空白のテキストが「null」と見なされます

于 2013-08-21T16:40:02.367 に答える