はい。ただし、正確な構文は質問で使用されているものとは異なります。
文字データを読み込むためのプラグインはdojo/text
.
JavaScript ライブラリーをロードし、ファイルの場所が dojotoolkit ベースの相対または dojoConfig のパッケージの 場所の宣言のいずれかを介して設定されている場合は、拡張子を使用しないでください。
require(['underscore'], function( _ ){
_.reduce ...
});
煩雑なインポート パスを避けるために、Dojo 構成で名前空間を構成しますdojoConfig
。ローダーのドキュメントを参照してください。
また、dojo/globalモジュールを使用したり、Dojo モジュールを Underscore.js のラッパーとして定義したりすることも検討してください。
//_.js
define(['dojo/global', 'underscore'], function(global){
return global._
});
上記の考慮事項により、実際の .js ファイルを手動でロードしている必要があります。dojo/text プラグインと組み合わせて、必要な JS をロードして評価するラッパーを作成する場合は、次の方法でうまくいく可能性があります。
/var/www/dojo-release-1.7/ext_lib/_.js - このサンプル ファイルは、dojo、dijit、dojox と並んでライブラリ名前空間に階層的に配置されています。
define(['dojo/global', 'dojo/text!./Underscore.js'], function(global, scriptContents){
global.eval(scriptContents);
return global._ // '_' is the evaluated reference from window['_']
/**
* Alternatively, wrap even further to maintain a closure scope thus hiding _ from global
* - so adapt global.eval to simply eval
* - remove above return statement
* - return a dojo declared module with a getInstance simple method
*/
function get_ () { return _ };
var __Underscore = declare('ext_lib._', [/*mixins - none*/], {
getInstance: get_
});
// practical 'static' reference too, callable by 'ext_lib.getInstance' without creating a 'new ext_lib._'
__Underscore.getInstance = get_;
return __Underscore;
});
declare here
を使用して独自のモジュールを定義するサンプル注: このコードはテストされていません。自由に修正を加えてください。