require.ensuire 第一个参数空或者不空有什么关系?

发布于 2022-09-04 15:07:55 字数 638 浏览 22 评论 0

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 中(有无依赖).

那么这个第一个参数:依赖加不加入有什么影响?

13 哪个是同步?哪个是异步?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

扬花落满肩 2022-09-11 15:07:55

require.ensure都是commonjs异步加载, 不存在你说的哪个同步哪个异步

分为二种情况使用:

情况一:

require.ensure([], function(require){
    require('./a.js');
});

此时会单独打包出一个js文件,没有自定义名称的话,会被命名为1.js(有hash时候会带上md5)

情况二:

require.ensure(['./a.js'], function(require) {
    require('./b.js');
});

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的写法

require(["./a.js"], function(a) {
    var b = require("./b.js");

});

在AMD的模式中,[]里的内容a会被先下载并立即执行,再接着执行回调函数的内容b

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文