require.ensuire 第一个参数空或者不空有什么关系?
1.
require.ensure([
'./a'
],function(){
var a = require('./a')
})
2.
上面的依赖有必要引入么?反正这里还是要 require
,它还不如下面这样
require.ensure([
'./a'
],function(a){
// 在这里用到 a, 不需要再 require
})
3.
还有另外一个种用法
require.ensure([
],function(){
var a = require('./a');
})
文档只是说如果加入参数, callback
会在依赖加载后在执行
但是打包后发现无论是 1
还是 3
, a
都会被打包到 chunk
中(有无依赖).
那么这个第一个参数:依赖加不加入有什么影响?
1
和 3
哪个是同步?哪个是异步?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
require.ensure都是commonjs异步加载, 不存在你说的哪个同步哪个异步
分为二种情况使用:
情况一:
此时会单独打包出一个js文件,没有自定义名称的话,会被命名为1.js(有hash时候会带上md5)
情况二:
1、此时a.js作为依赖被加载,但是没有被执行(官方文档说的only loads the modules)
2、a.js和b.js会被打包成一个文件。
3、回调函数里只require了b.js,只有b.js的内容会被执行。
4、如果你需要使用a.js的内容,需要再加上require('./a.js')
最后require.ensure主要是为了区别require-AMD的写法
在AMD的模式中,[]里的内容a会被先下载并立即执行,再接着执行回调函数的内容b