🐠 转换
尽管许多 打包器(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";