内容简介:Parcel 是一款极速、零配置的 Web 应用打包工具。此版本比 Parcel 1 更可扩展、更可伸缩和更可靠,同时还保留了从 Parcel 中获得的易用性和开发人员体验。具体内容如下: 扩展性:Parcel 2 是完全可扩展的,从一端...
Parcel 是一款极速、零配置的 Web 应用打包工具。此版本比 Parcel 1 更可扩展、更可伸缩和更可靠,同时还保留了从 Parcel 中获得的易用性和开发人员体验。具体内容如下:
- 扩展性:Parcel 2 是完全可扩展的,从一端到另一端。插件类型已经被扩展,允许使用易于配置的管道扩展和覆盖几乎所有的核心行为。
- 可伸缩性:虽然 Parcel 一直使用并行性和缓存来扩展到大型应用程序,但是在 Parcel 2 中,这一步更深入。此版现在缓存和并行化了更多的 Parcel 工作,尤其是缓存的构建,可以扩展到更大的应用程序。
- 可靠性:Parcel 2 提高了缓存的可靠性,同时将性能提高到最大。此版中使用了一个全新的跨平台文件系统监视器,它可以在 Parcel 未运行时检测粒度文件更改,缓存的构建具有几乎完全相同的性能与监视模式。
配置
Parcel 是零配置。这并不意味着不可配置,只是 Parcel 尽可能多地从代码本身推断,并将现有的配置文件用于其他工具(例如 .babelrc)。
Parcel 2 是可选择的配置。Parcel 2 CLI 中内置的默认配置对于大多数应用程序来说都足够了,并且包含了所有支持的 Parcel 1 以及更多的配置,但是 Parcel 2 支持通过为每个 Parcel 的核心阶段专门设计的一整套插件类型来扩展核心的附加功能。
- Resolvers:Resolvers 将导入(如 import‘./foo’ 或 import‘rep’)转换为 /my/project/foo.js 之类的完整文件路径。Parcel 2 中的默认解析器包括对节点解析算法的支持,但是,如果要扩展或重写项目的解析算法,此版本可以使用解析器插件。
- Transformers:Transformers 将代码和 asset 从一种语言编译到另一种语言,或者只是以某种方式转换文件。例如,类型记录转换器将类型转换为JavaScript,而 Babel 转换器将 JavaScript 转换为不同的 JavaScript。Transformers 还负责从代码中提取依赖项,例如导入语句和要求调用,这些调用被传递回解析器、另一个转换器等等。
- Bundlers:Bundler 插件以 asset 图作为输入,并输出类似于 asset 图的 bundle 图,但将 asset 被分组。默认的 Bundler 将具有类似文件类型(如 JavaScript 和 CSS)的 asset 组合在一起,并执行代码分裂和一些其他的优化。
- Namers:Namer 插件负责确定每个包的输出文件名。默认的名称插件包括为 asset 的长期可达性而进行的内容散列,以及与 Parcel 1 相同的命名规则。
- Runtimes:Runtime 插件允许在构建时将代码插入到包中
- Packagers:packagers 将公共类型的 asset 组合到一个可以在浏览器中加载的输出包中。例如,JSPackager 将 JavaScript 文件组合在一起,以便在正确的时间以正确的顺序执行它们。
- Optimizers:Optimizer 插件以某种方式优化包,例如最小化或压缩文件。例如,Terser 优化器将 JavaScript 包最小化
- Validators:Validator 插件在后台运行以执行代码验证,例如 linting (例如 eslint)或类型检查(例如类型记录)。
- Reporters:Reporter 插件在整个 bundling 过程中接收带有状态信息和日志事件的事件。
所有这些都是在一个非常简单的 .parcelrc 的 JSON 文件中配置的。
Small Core
此版 Parcel 中的所有东西都被分解成插件,所以 Parcel 核心非常小。现在,它基本上只是根据你的应用程序中的文件图表,以一种有目的和优化的方式运行其他所需的工具。所有的东西都是设计成并行的,并且是可缓存的,无论是本地的还是最终的,都是跨机器的。
Worker farm 已经进行了更新,以便在可用时使用内置到 Node 12 中的新 Worker_threads,与以前版本中使用的多进程后端相比,该模块的开销更低。
除了一个全新的核心和插件系统,Packcel 2 还有许多新特性,包括对多个目标的支持。Parcel 2 允许你为多个目标配置构建,这些目标将并行构建。例如,你可能希望为具有现代语法的现代浏览器构建应用程序的版本,为具有更多转换溢出功能的遗留浏览器构建一个版本的应用程序。或者希望为节点和浏览器构建一个库。此版本中可以通过在 Package.json 中配置目标来做到这一点。
{
"browser": "dist/legacy/index.js",
"browserModern": "dist/modern/index.js",
"targets": {
"browserModern": {
"engines": {
"browsers": [
"last 1 Chrome version"
]
}
},
"browser": {
"engines": {
"browsers": [
"> 0.25%"
]
}
}
}
}
Parcel 2 还支持高级的包优化,它自动将诸如 React 和其他库的公共依赖项拆分到它们自己的包中,这些包可以并行加载,并与代码的其余部分分开缓存。
其他更新内容请见发布说明
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 前端的打包工具
- rpm自动化打包工具
- Python打包分发工具setuptools
- iOS新手用swift写一个macos打包工具 一键打包到指定位置
- node app 打包工具 pkg
- fastlane 自动化打包工具实践
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
黑客大曝光
Joel Scambray、Vincent Liu、Caleb Sima / 姚军 / 机械工业出版社华章公司 / 2011-10 / 65.00元
在网络技术和电子商务飞速发展的今天,Web应用安全面临着前所未有的挑战。所有安全技术人员有必要掌握当今黑客们的武器和思维过程,保护Web应用免遭恶意攻击。本书由美国公认的安全专家和精神领袖打造,对上一版做了完全的更新,覆盖新的网络渗透方法和对策,介绍如何增强验证和授权、弥补Firefox和IE中的漏洞、加强对注入攻击的防御以及加固Web 2.0安全,还介绍了如何将安全技术整合在Web开发以及更广泛......一起来看看 《黑客大曝光》 这本书的介绍吧!