Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Webpack 网页包与ES6模块_Webpack_Ecmascript 6_Es6 Modules - Fatal编程技术网

Webpack 网页包与ES6模块

Webpack 网页包与ES6模块,webpack,ecmascript-6,es6-modules,Webpack,Ecmascript 6,Es6 Modules,我最近开始学习网页包。我所了解的是,它将各种资产(如JavaScript、CSS等)捆绑到捆绑包中 但是关于JavaScript,我们不能用ES6模块实现相同的功能吗? 例如,理想情况下,我们的登录页.html文件中只能有一个module类型的脚本,该脚本模块将以ES6方式导入require依赖项 我认为几乎所有现代浏览器都支持ES6模块。在这种情况下,Webpack不是多余的吗?对于大多数浏览器,是的,您只需使用ES6模块就可以在浏览器中获得所有需要的代码,而无需Webpack。不过,您是否愿

我最近开始学习网页包。我所了解的是,它将各种资产(如JavaScript、CSS等)捆绑到捆绑包中

但是关于JavaScript,我们不能用ES6模块实现相同的功能吗? 例如,理想情况下,我们的登录页.html文件中只能有一个module类型的脚本,该脚本模块将以ES6方式导入require依赖项


我认为几乎所有现代浏览器都支持ES6模块。在这种情况下,Webpack不是多余的吗?

对于大多数浏览器,是的,您只需使用ES6模块就可以在浏览器中获得所有需要的代码,而无需Webpack。不过,您是否愿意这样做是另一回事,这取决于您的目标浏览器和应用程序由多少模块组成(与您对大量网络请求的容忍度相平衡)

目前,对ES6模块的浏览器支持几乎无处不在,但在Android上,
export
目前在嵌入式应用程序浏览器中不受支持。所以,如果你想让你的脚本在Android上的Facebook、LinkedIn或Twitter的应用程序内浏览器中工作,那将是一个问题

一个潜在的更大的问题是,如果不捆绑代码,可能需要预期的网络请求数量。如果您的应用程序由24个模块组成(一点也不疯狂),那么您的浏览器必须发出24个网络请求。正如您可能知道的,在20多个请求中加载(比如)200K JavaScript要比在一个请求中加载相同的200K JavaScript慢得多

最后,即使您要在客户端加载20多个模块,也可能希望加载缩小的JavaScript(即使您不是在传输,只是缩小)。这意味着您已经在进行一些服务器端代码操作。这意味着,作为最后一步,捆绑所有这些代码几乎总是有意义的


希望这有帮助!这是一个好的、合理的问题;仅仅是回答这个问题就让我想起了我以前没有真正思考过的东西。

我认为当es6导入在浏览器中成为标准时,Webpack将继续作为功能上有用的工具

Webpack管理很多东西:插件、加载程序等等。此外,捆绑销售也将一直受到欢迎

此外,出现了WebpackVersion5,它提供了模块联合功能,您可以将一个包中的部分代码使用到另一个包中。这是一个非常好的特性,尤其是在微前端

所以,我认为Webpack是一个非常好的工具,它将永远是有用的