多くのNPMパッケージを使用するDojoプロジェクトに取り組んでいます。その1つはbluebirdで、IEでPromiseを使用する必要があります。私は、プロジェクトにNPMパッケージをロードするためのベストプラクティス/推奨される方法を探しています。に示すようにAMDモジュールとしてDojoプロジェクトにbluebird(NPMから取得)をロードする方法は?
require([
'dojo/dom',
'dojo/request',
'dojo/domReady!'
], function(dom, request) {
var message = dom.byId('greeting');
message.innerHTML = "Getting started";
var p1 = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve(true);
}, 1000);
});
var p2 = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve(true);
}, 1000);
});
var p3 = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve(true);
}, 1000);
});
Promise.all([p1, p2, p3]).then(function() {
message.innerHTML = "All requests have been completed";
}, function(error) {
message.innerHTML = error;
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/bluebird/1.2.2/bluebird.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js" data-dojo-config="async: true"></script>
<div id="greeting"></div>
は、IE11でコードを実行するためには、私は(<script>
タグを通じて青い鳥ライブラリをロードすることができます
次のコードは、私の質問を示す一例ですコード)。しかし、NPMでライブラリを管理したい場合、タグを使用してディスク内のnode_modules
フォルダからライブラリをロードするか、node_modules
フォルダからdojoConfig
までライブラリを参照するか、いずれにしてもnode_modules
フォルダに入り、そのパッケージを参照する必要があります。そうすることが推奨されるかどうかわからないのですか?例えば、CommonJSは明らかにそうするように、NOT示唆:http://requirejs.org/docs/node.html:
使用NPMは、プロジェクトにノードのみのパッケージ/モジュールをインストールするディレクトリをnode_modulesが、node_modulesディレクトリ内見てRequireJSを設定しないでください。また、相対的なモジュールIDを使用して、ノードのみのモジュールであるモジュールを参照することも避けてください。その物理的な経路を通って
node_modules
フォルダに存在する(「./ node_modules/fooの/ foo」という
私は、ライブラリ(または任意の他のNPMのパッケージを参照するべきではない場合)が必要なようなので、何かをしていない、ありますそこにそうするためのより良い方法はありますか?私は道場のrequire([])
呼び出しは最高の場所かもしれないが、私はそうする方法を正確に確認していないで、それをロードすることを考えています。
任意の助けが理解されるであろう。