好吧,他是事情。我为我的AMD加载器使用curl.js,但是我不喜欢很多“cram”,因为它需要在unix上运行,而且我正在Windows上开发。因此,记住RequireJS库中的nodeJS的r.js适配器,因为节点已经是Windows的二进制文件。jQuery作为AMD模块并使用r.js进行优化
现在jQuery的当前版本(1.6.4)是无效的AMD模块(1.7版本即将)并且在jQueryUI的组件具有依赖性,所以我不得不假像这样:
curl([js!Core/jquery.js])
.then(function() {
define('jquery', function() { return jQuery; });
})
我的应用程序对此感到满意。然而,使用r.js(0.26.0版本),该部件有以下错误失败:
Tracing dependencies for: boot
function(){return jQuery}
node.js:207
throw e; // process.nextTick error, or 'error' event on first tick
^
ReferenceError: jQuery is not defined
at eval at <anonymous> (r.js:7468:30)
at main (r.js:770:33)
at callDefMain (r.js:840:18)
这是我app.build.js
({
appDir: '../',
baseUrl: 'Scripts/',
paths: {
'link': '../../../Lib/@Javascript Libs/curl.js/src/curl/plugin/link.js'
},
dir: 'built',
optimize: 'none',
modules: [
{ name: 'boot' }
]
})
这里是完整的启动。 JS供参考(CoffeeScript的):
require([
'link!styles/main.css'
'js!Core/jquery.js!order'
'js!Core/underscore.js!order'
'js!Core/backbone.js!order'
]).then ->
define 'jquery', -> jQuery
.next(['Router/MainRouter'])
.then (MainRouter) ->
new MainRouter()
Backbone.history.navigate('home') unless Backbone.history.start(
pushState: false
)
预先感谢您的任何暗示,其中捕捉可以...
哦,我想知道发生了什么在那里。 RequireJS没有使用基于承诺的AMD加载,所以它不理解那些“那么”和“下一个”函数,并试图在真正加载之前定义jquery ......任何想法我能做些什么? – FredyC