Note: This page covers Parcel 1, the documentation for Parcel 2 is being worked on here: parcel2.zcopy.site

🔌 插件

Parcel 采用与许多其它工具稍微不同的策略,许多常见的格式都被开箱即用地包含进来,而不需要安装或者配置额外的插件。然而,有些情况你可能会想在非标准的情况下扩展 Parcel 的能力,而那些时候,插件是被支持的。安装的插件会基于 package.json 的依赖会被自动检测并加载。

当你添加一种全新的文件格式到 Parcel,你应该先考虑它会有多通用,还有它的实现会有多标准化。如果它足够通用及标准,该格式很可能应该被添加到 Parcel 的核心,而不是作为一种用户需要安装的插件。如果你有其它的疑惑,可以到GitHub一起讨论。

插件 API

Parcel 插件很简单。它们只是简单地将几个模块输出成一个函数,它会被 Parcel 在初始化的时候自动调用。函数接收 Bundler 对象作为输入,也可以做一些配置,比如注册资源类型和注册 packager。

module.exports = function(bundler) {
  bundler.addAssetType('ext', require.resolve('./MyAsset'))
  bundler.addPackager('foo', require.resolve('./MyPackager'))
}

请发布这个包到 npm,并使用 parcel-plugin- 前缀,那它就会像后文提到的那样被自动检测和加载。

使用插件

在 Parcel 中使用插件是前所未有的简单。你所做的,只是将它们安装好并保存到 package.json 中。插件需要以 parcel-plugin- 作为前缀被命名。例如 parcel-plugin-foo。任何在 package.json 中被列出的带有此前缀的依赖,都会在初始化的时候被自动加载。