尽管许多 打包器(bundler) 都要求你安装和配置插件来转换资源,Parcel 内置许多长江的转换和转译器,让你开箱即用。你可以使用 Babel 转换 JavaScript,CSS 使用 PostCSS ,HTML 使用 PostHTML 。当在模块中找到配置文件(例如 .babelrc ,.postcssrc )时, Parcel 会自动运行这些转换。
这甚至可以在第三方 node_modules 中工作:如果配置文件是作为包的一部分发布的,转换会自动打开,且仅适用于该模块。由于只处理需要转换的模块,因此可以快速打包。这也意味着您不需要手动配置转换来包含和排除某些文件,或者知道第三方代码是如何构建的,以便在你的应用程序中使用它。
**Babel**
****
Babel 是一个流行的 JavaScript 转译器,拥有大量的插件生态系统。在 Parcel 中使用 Babel 的方式与其单独使用或与其他打包器配合使用的方式相同。
在你的应用程序中安装预设和插件:
`yarn add babel-preset-env`
然后,创建一个 .babelrc 文件:
~~~
{
"presets": ["env"]
}
~~~
**PostCSS**
****
PostCSS 是一个用插件转换 CSS 的工具,比如 autoprefixer, cssnext, 和 CSS Modules。 您可以使用以下名称之一创建配置文件,从而使 Parcel 使用 PostCSS 配置 : .postcssrc (JSON), .postcssrc.js, 或者 postcss.config.js.
在你的应用程序中安装插件:
`yarn add postcss-modules autoprefixer`
然后,创建一个 .postcssrc 文件:
~~~
{
"modules": true,
"plugins": {
"autoprefixer": {
"grid": true
}
}
}
~~~
插件指定在 plugins 对象的 key 中,并选项定义使用对象值。 如果插件没有选项,只需将其设置为 true 即可。
Autoprefixer , cssnext 和其他工具的目标浏览器可以在` .browserslistrc` 文件中指定:
~~~
> 1%
last 2 versions
~~~
CSS Modules 的启用方式稍有不同,在顶级 modules key 上使用。这是因为 Parcel 需要对 CSS Modules 有特殊的支持,因为它们也会导出一个对象,包含到 JavaScript 包中。请注意,你仍然需要在你的项目中安装 `postcss-modules `
**PostHTML**
****
PostHTML 是一个用插件转换 HTML 的工具。您可以使用以下名称之一创建配置文件,从而使 Parcel 使用 PostHTML 配置 :`.posthtmlrc (JSON), posthtmlrc.js, `或者 `posthtml.config.js.`
在你的应用程序中安装插件:
`yarn add posthtml-img-autosize`
然后,创建一个 .posthtmlrc 文件:
~~~
{
"plugins": {
"posthtml-img-autosize": {
"root": "./images"
}
}
}
~~~
插件指定在 plugins 对象的 key 中,并选项定义使用对象值。 如果插件没有选项,只需将其设置为 true 即可。
**TypeScript**
TypeScript 是 JavaScript 类型的超集,可以编译成普通的JavaScript,它也支持现代的 ES2015+ 特性。 无需任何额外的配置即可转换 TypeScript 。
~~~
<!-- index.html -->
<html>
<body>
<script src="./index.ts"></script>
</body>
</html>
~~~
~~~
// index.ts
import message from "./message";
console.log(message);
~~~
~~~
// message.ts
export default "Hello, world";
~~~