1

wirejsを使用してアプリを作成していrequirejsます。IE 8 の場合、polyfills: cujo/polyjs ライブラリを使用しており、ロードする前にこのライブラリをプリロードする必要がありますwirejs

curlドキュメントに従って、AMD ローダーとして使用した場合、次のオプションを利用できます。

curl({ preloads: [ "poly" ] });

私にとってうまくいくのは:

// in index.html

<script data-main="js/app" src="js/lib/require.js"></script>

// in js/app.js

define(function(){
   // set configuration options
   requirejs.config({// set config with paths});

   // require the library and HOPE it will load before
   // everything else!
   require(['poly']);

});

このドキュメントshimでは、この目的で config を使用することを推奨しています。しかし、私はその方法を理解することができませんでした。私が試したことのいくつか:

// DID NOT WORK!!
requirejs.config({

....
"shim": {
   "poly": {
     "exports": "poly"
    }
 }
});

これにアプローチするより良い方法はありますか?

助けていただければ幸いです!...お時間をいただきありがとうございます!

4

2 に答える 2

2

私は同じ問題に遭遇しました。私の解決策は、Require.js がポリフィルを依存関係としてロードするようにすることでした。この要点で、 Conditioner.jsと組み合わせて解決した方法を見ることができますが、解決策はそれがなくても同じです。

ロード中のポリフィルを検出する機能を選択したので、新しいブラウザーは不要なリクエストを行いません。特徴検出は、この特定のソリューションを優れたものにします。

あなたのindex.html

<script src="/js/require.js" data-main="/js/main"></script>

ファイル内/js/main.js:

var _polyfills = [];
if (!('classList' in document.documentElement)) {
    _polyfills.push('polyfills/classList');
}
// ... more feature detects & polyfills ...

require(['bootstrap'].concat(_polyfills), function(bootstrap) {
    bootstrap.run(); // Bootstrap your app here!
});
于 2015-05-19T21:31:14.493 に答える