UPDATE私の道場依存モジュールをコンパイルすることはできません。を私は以下のジェフBarczewskiの答えを試みたが、私はもはやプラグインの下にエラーを取得していないのに、私は今、別のエラーを取得しています:Requirejsが
Error: TypeError: Cannot read property 'normalize' of undefined
In module tree:
mymodule/core
at Object.<anonymous> (/usr/local/lib/node_modules/requirejs/bin/r.js:1193:35)
更新2: JeffはDojoのプラグインがRequireJSと互換性がないという点が正しいので、代わりにdojoを構築するためにgrunt-dojoを使用することにしました。私は依然として自分自身のコードにRequireJSを使用し、単純にDojoの依存関係を無視して無視します。
オリジナルポスト:
私はブラウザが確認する必要がありHTTPリクエストの量を下げるために、単一のJSファイルをコンパイルするためにうなり声を使用しようとしています。 Dojo 1.9はAMDに準拠しているので、コードを最適化するためにGruntのrequirejsプラグインを使用すると考えました。直接r.jsを使用している場合しかし、私は次のエラーを受信、両方のうなり声のプラグインを使用した場合としています:
>> Tracing dependencies for: mymodule/core
>> TypeError: Cannot call method 'createElement' of undefined
>> In module tree:
>> mymodule/core
>> dojo/behavior
>> dojo/query
>> dojo/selector/_loader
{ [Error: TypeError: Cannot call method 'createElement' of undefined
In module tree:
mymodule/core
dojo/behavior
dojo/query
dojo/selector/_loader
at eval (eval at <anonymous> (/Users/EugeneZ/Workspace/presentment/web/js/node_modules/grunt-contrib-requirejs/node_modules/requirejs/bin/r.js:23690:38), <anonymous>:6:24)
]
originalError:
{ [TypeError: Cannot call method 'createElement' of undefined]
moduleTree:
[ 'dojo/selector/_loader',
'dojo/query',
'dojo/behavior',
'mymodule/core' ],
fileName: '/Users/EugeneZ/Workspace/presentment/web/js/dojo_release/dojo/selector/_loader.js' } }
が
_loader
道場モジュールのコードを見てみると、ブラウザで実行し、頼っていますと仮定しています
document
グローバル:
var document;
var testDiv = document.createElement("div");
しかし、なぜrequirejsがこれを許可しないのですか?私は彼らのドキュメントを検索して、このチェックをオフにする方法を見つけることができません。私は何か誤解しているとか間違っていると思っていますが、それを理解することはできません。道場はr.jsビルダー/オプティマイザと互換性がありませんが使用するいくつかのプラグインを持ってい
requirejs: {
compile: {
options: {
'baseUrl': './',
'paths': {
'dojo': 'dojo_release/dojo',
'dojox': 'dojo_release/dojox',
'dijit': 'dojo_release/dijit',
'mymodule' : 'core/mymodule',
'osi': 'osi',
'demo': 'demo',
'slick': 'core/slick'
},
'name': 'mymodule/core',
'out': './mymodule.js'
}
}
}
"未定義のプロパティを '読み込めません'という問題が解決されましたか? –
私はしませんでした。結局、私は元に戻って、なぜ私がr.jsを使いたいのかと尋ねなければなりませんでした。私はちょうど私が最初に避けようとしていたものであるはるかに複雑であるにもかかわらず、とにかくはるかに強力な道場ビルダーを使用して終わった。 – EugeneZ