内容简介: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 自动化打包工具实践
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
实战Java高并发程序设计
葛一鸣、郭超 / 电子工业出版社 / 2015-10-1 / CNY 69.00
在过去单核CPU时代,单任务在一个时间点只能执行单一程序,随着多核CPU的发展,并行程序开发就显得尤为重要。 《实战Java高并发程序设计》主要介绍基于Java的并行程序设计基础、思路、方法和实战。第一,立足于并发程序基础,详细介绍Java中进行并行程序设计的基本方法。第二,进一步详细介绍JDK中对并行程序的强大支持,帮助读者快速、稳健地进行并行程序开发。第三,详细讨论有关“锁”的优化和提高......一起来看看 《实战Java高并发程序设计》 这本书的介绍吧!