Parcel 2.0.0 alpha 发布,Web 应用打包工具
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 和其他库的公共依赖项拆分到它们自己的包中,这些包可以并行加载,并与代码的其余部分分开缓存。
其他更新内容请见发布说明
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
digiKam 6.2.0 发布,KDE 相片管理工具
digiKam 6.2.0发布了,digiKam 是一款针对 KDE 桌面环境的数字相片管理工具,此版本带来了几大亮点。 引入原生文件引擎(raw files engine),开发团队使用 libraw 库对计算机上的 raw 文件进行后处理,该库包含支持所有不同 raw 文件格式的复杂算法。 具体使用了维护版本 libraw 0.19.3,它能够处理超过 1000 种 raw 格式,并且引入了几个与相片市场上最新相机型号相对应的新 raw 格式,包括: Canon Powershot A560 FujiFilm X-T30 Nikon Coolpix A1000、Z6、Z7 Olympus E-M1X Sony ILCE-6400 手机与无人机产生的一些 dng 文件 此版本相册管理支持在 HiDPI 4K 屏幕上渲染图标视图条目,此前如果你有一个 27 英寸的 4K 显示器(通常分辨率为 3840x2160 像素),图标视图内容会变小并像素化,现在 digiKam 可以放大图像,可以在支持 HiDPI 的屏幕上正确显示它们。 digiKam 6.2.0 开始支持 Portable ...
- 下一篇
Netty 4.1.39.Final 发布,异步事件驱动网络应用框架
Netty 4.1.39.Final 发布了,此版本主要修复了一些 bug,同时有一些性能增强。最重要的是,它修复了多个 HTTP/2 安全问题。 主要更新内容如下: HTTP2:防止空数据帧(没有 end_of_stream 标志)设置 (#9461) HTTP2:添加针对远程对等方触发的远程控制帧的保护 (#9460) 从自定义标头设置 ORIGIN 标头,如果它存在(#9435) 使用 InternetProtocolFamily 创建 EpollDatagramChannel 时,请勿缓存本地/远程地址 (#9436) 修复 HttpUtil.getCharset 不抛出 IllegalCharsetNameException(#9439) 更多详情可查看发布公告。
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8安装Docker,最新的服务器搭配容器使用
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- 设置Eclipse缩进为4个空格,增强代码规范
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能