自定义编译
在特定的情况下,Taro 自带的编译系统没有办法满足我们的编译需求,这时 Taro 提供了两种拓展编译的方案:
使用 Webpack 进行拓展
在打包体积分析 中我们在 mini.webpackChain 添加了一个 Webpack 插件,达到了打包体积/依赖分析的效果。
事实上通过 mini.webpackChain
这个配置我们可以几乎使用任何 Webpack 生态的插件和 loader
,例如我们想使用 CoffeeScript
来进行开发:
config/index
const config = {
...
mini: {
webpackChain (chain, webpack) {
// webpack-chain 详细语法请参考文档:https://github.com/neutrinojs/webpack-chain
chain.merge({
module: {
rule: {
coffeeScript: {
test: /\.coffee$/,
use: {
coffeeLoader: {
loader: 'coffee-loader'
}
}
}
}
}
})
}
}
}
同样,之前我们提到过的 CSS Modules
也可以通过 Webpack 的形式进行拓展支持。详情可以访问 webpack-chain 文档了解详细的用法。
使用插件化系统进行拓展
在 [CSS 工具](#CSS 工具) 我们已经使用了名为 @tarojs/plugin-sass
的插件来实现对 Sass
的支持。比起使用 Webpack 拓展编译,Taro 的插件功能不用在每个端都对 Webpack 进行配置,只用使用插件即可。
除此之外,Taro 的插件化功能还可以拓展 Taro CLI 编译命令,拓展编译流程,拓展编译平台,你可以访问 插件功能文档 了解更多自定义配置的信息。