Parcel 2.0.0 alpha 发布,Web 应用打包工具

栏目: 软件资讯 · 发布时间: 6年前

内容简介:Parcel 是一款极速、零配置的 Web 应用打包工具。此版本比 Parcel 1 更可扩展、更可伸缩和更可靠,同时还保留了从 Parcel 中获得的易用性和开发人员体验。具体内容如下: 扩展性:Parcel 2 是完全可扩展的,从一端...

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.0.0 alpha 发布,Web 应用打包工具

Parcel 2 还支持高级的包优化,它自动将诸如 React 和其他库的公共依赖项拆分到它们自己的包中,这些包可以并行加载,并与代码的其余部分分开缓存。

其他更新内容请见发布说明


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Tagging

Tagging

Gene Smith / New Riders / 2007-12-27 / GBP 28.99

Tagging is fast becoming one of the primary ways people organize and manage digital information. Tagging complements traditional organizational tools like folders and search on users desktops as well ......一起来看看 《Tagging》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码