我的项目使用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 :(得分:2)
看来Rhino工具在理解文本方面存在问题!使用r.js
进行编译时的插件我切换到Node,一切都很完美。
对于可能遇到同样问题的其他人,只需访问nodejs网站并下载Windows安装程序(我使用的是Windows)。安装完成后,重新启动计算机,然后按照requirejs网站上的说明使用node r.js -o app.build.js
。
答案 1 :(得分:0)
Rihno的文本插件存在问题。 您的文件'core / ui / text / form / LoginForm.txt'不应为空。 在该文本文件中添加任何字符串,它将运行。 在Rhino中,使用文本插件时,空白文本被视为“空”