【问题标题】:ParcelJS module loading vs WebpackParcelJS 模块加载 vs Webpack
【发布时间】:2021-01-13 11:35:24
【问题描述】:

我正在尝试加深对 JavaScript 模块的理解,而不仅仅是使用 CommonJS、AMD 和 ES 模块。

这让我更多地研究 webpack,以了解它如何在不依赖仍然相对较新的 ES 模块的情况下实际使模块在浏览器中工作。据我了解,Webpack 捆绑了 JS,将 importrequire 语句转换为自己的语句,并附带运行时和清单,允许它执行它们。那么 Webpack 基本上是通过实现自己的模块来克服缺乏模块支持的吗?

我试图将它与另一个打包工具——Parcel 进行比较,但我似乎找不到任何关于它如何处理模块的信息。

有谁知道我对 Webpack 的理解是否正确,以及与 Parcel 的做法相比如何?

提前感谢任何帮助。

谢谢

【问题讨论】:

    标签: javascript node.js webpack parceljs


    【解决方案1】:

    ES6 导入/导出语法的实现已经使许多传统的模块加载器,例如 RequireJS / AMD 和 rollup 有点过时了。然而,像 Webpack 和 Parcel 这样的资产打包工具在现代 Web 开发中仍然占有一席之地。

    资产捆绑器将多个文件打包成一个较小的文件集(包括 JS、图像、字体、LESS、SCSS 等),从而减少对服务器的请求数量和通信开销。捆绑过程通常涉及脚本缩小、死代码删除和依赖项管理。这也允许更模块化的前端 Web 开发。

    在某些方面,Parcel 较新,比 Webpack 更先进。 Parcel 开箱即用地支持许多不同的语言和文件类型,从 HTML、CSS 和 JavaScript 等 Web 技术,到 Rust 等低级语言,以及任何可编译为 WebAssembly (WASM) 的语言,再到图像、字体、视频等资产,和更多。您可以一次构建多个目标,并在进行更改时实时更新它们。 Parcel 在工作进程中并行编译所有文件,并在运行过程中缓存所有文件。使用动态 import() 语句进行代码拆分不需要显式配置。

    Webpack 和 Parcel 都为您提供了一个开发服务器来在浏览器上测试您的项目。与 Webpack 不同的是,Parcel 的入口点是 HTML 文件而不是 JS 文件。你不应该在

    另一个资产捆绑器是 Browserify。它是一个更简单的工具,仅捆绑您的文件。它的功能不如 Webpack 和 Parcel 丰富。

    【讨论】:

      猜你喜欢
      • 2017-12-04
      • 2016-02-26
      • 2018-04-04
      • 2018-06-05
      • 2016-01-26
      • 1970-01-01
      • 2015-10-09
      • 2020-09-22
      相关资源
      最近更新 更多