我正在使用wirejs创建一个requirejs应用程序。对于IE8,我使用的是polyfills:cujo/poly js库,并要求在加载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配置。不过,我还不知道怎么做。我尝试过的一些事情:
// DID NOT WORK!!
requirejs.config({
....
"shim": {
"poly": {
"exports": "poly"
}
}
});有没有更好的方法来解决这个问题?
感谢您的任何帮助!...thanks为您的时间!
发布于 2014-08-22 19:09:49
我确实使用了RequireJS和多填充,但是我不使用RequireJS来加载它们。多边形填充的目标是使缺乏features的浏览器看起来似乎具有特性X。我更喜欢这样一种设置,在这种设置中,我运行的代码(除了多边形填充本身)都使用已经加载的运行,这样代码运行的特性与它可以使用的功能集相同,无论哪个浏览器运行代码。因此,我也希望在RequireJS之前加载我的多填充。
但是,如果我们忽略了这个首选项,那么RequireJS是否可以用来加载聚合填充呢?是的,但是RequireJS不会让事情变得容易。没有一种简单的方法可以告诉RequireJS“在加载任何其他之前必须加载这部分代码”,这正是您希望使用的聚合填充。您需要做的是手动调用require,以便首先加载您的填充。您的index.html可能类似于:
<script>
require = {
// Your config.
//
// Setting a global require before loading RequireJS is one way to give it
// a config.
};
</script>
<script src="js/lib/require.js"></script>
<script>
// No data-main above...
//
// This double require ensures that the polyfills are loaded first.
require(["poly"], function () {
require(["js/app"]);
});
</script>js/app.js变成:
define(function(){
// whatever...
});在js/app以外可能有多个入口点的大型应用程序中,每次从RequireJS模块外部加载模块时,都必须使用双重要求,如上面所示,以确保首先加载多填充。
发布于 2015-05-19 21:31:14
我遇到了同样的问题,我的解决方案是让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!
});https://stackoverflow.com/questions/25453351
复制相似问题