Vik*_*ram 1 requirejs polyfills wirejs
我正在创建一个wirejs应用程序requirejs.对于IE 8,我使用polyfills:cujo/polyjs库并要求在加载之前预先加载此lib wirejs.
如果我用作curlAMD加载器,根据文档,我有以下选项:
curl({ preloads: [ "poly" ] });
Run Code Online (Sandbox Code Playgroud)
对我有用的是:
// 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']);
});
Run Code Online (Sandbox Code Playgroud)
本文档建议使用shimconfig来实现此目的.但是,我还没弄清楚如何.我试过的一些事情:
// DID NOT WORK!!
requirejs.config({
....
"shim": {
"poly": {
"exports": "poly"
}
}
});
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来解决这个问题?
任何帮助表示赞赏!...感谢您的时间!
我确实将RequireJS与polyfill一起使用,但我没有使用RequireJS来加载它们.polyfill的目标是使缺少X特征的浏览器看起来好像它实际上具有X特征.我更喜欢一种设置,其中我运行的所有代码(除了polyfills本身)都已经与polyfill一起运行加载,以便代码运行时具有相同的功能集,无论哪个浏览器运行代码.所以我想在RequireJS之前加载我的polyfill.
但是如果我们忽略这个偏好,可以使用RequireJS加载polyfill吗?是的,但RequireJS不会让事情变得简单.告诉RequireJS没有简单的方法"在加载任何其他东西之前必须加载这个代码体",这就是你想要的polyfill.您需要做的是手动调用,require以便首先加载您的polyfill.你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>
Run Code Online (Sandbox Code Playgroud)
js/app.js 变为:
define(function(){
// whatever...
});
Run Code Online (Sandbox Code Playgroud)
在可能存在多个入口点的大型应用程序中js/app,每次要从RequireJS模块外部加载模块时都必须使用上面的双重要求,以确保首先加载polyfill.
| 归档时间: |
|
| 查看次数: |
3858 次 |
| 最近记录: |