2013-01-25 32 views
2

我的項目使用requirejs的文本插件,雖然插件可以正常工作,但優化器不會。這是一個我的應用程序文件的測試: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'文本依賴所使用的插件。

我想要的是內聯資源,我一直在關注該教程,並且擁有所有庫的所有最新版本。

+0

僅供笑,請嘗試使用其他內置工具,如prunejs.com – ddotsenko

回答

2

看來犀牛工具在理解文本時有問題!插件與r.js編譯時

我切換到節點,一切正常。

對於其他可能遇到相同問題的人,只需轉到nodejs網站並下載Windows安裝程序(我正在使用Windows)。安裝完成後重新啓動計算機,您可以按照requirejs網站上的說明使用node r.js -o app.build.js

0

Rihno的文本插件存在問題。 您的文件'core/ui/text/form/LoginForm.txt'不應該爲空。 在該文本文件中添加任何字符串,它將運行。 在Rhino中,當使用文本插件時,空白文本顯示爲「null」