わかった、彼が物だ。AMDローダーにcurl.jsを使用していますが、UNIXで実行する必要があり、Windowsで開発しているため、「cram」はあまり好きではありません。したがって、ノードにはすでにWindows用のバイナリがあるため、RequireJSライブラリのnodeJS用のr.jsアダプターが念頭にあります。
現在のバージョン(1.6.4)のjQueryは有効な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' }
]
})
そして、ここに参照用の完全な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
)
キャッチができるヒントを事前にありがとう...