Taro 编译时如何正确配置 alias 路径别名?
我在 Taro 项目里想用路径别名简化 import,比如把 src/utils 映射成 @/utils。按照文档在 config/index.js 里配了 alias,但编译到微信小程序时报错说找不到模块,H5 却能正常跑。是不是小程序端对 alias 支持不一样?还是我配置写错了?
这是我的配置片段:
const config = {
// ...
alias: {
'@/utils': path.resolve(__dirname, '..', 'src/utils'),
'@/components': path.resolve(__dirname, '..', 'src/components')
}
}
最稳妥的方式是:同时配置 webpack alias 和小程序的
alias插件支持。具体分两步:
1. 在
config/index.js里继续保留你现在的 alias 配置,但注意路径要指向实际存在的目录,建议用绝对路径(你这样写是对的);2. 额外在
config/index.js的mini字段里加alias配置,因为 Taro 会把mini.alias透传给小程序编译器。比如:
这样 H5 走 webpack alias,小程序走 mini.alias,两边都认,就不会报错了。
另外提醒一句:Taro 3.6+ 版本之后,
config/index.js的结构有调整,如果你用的是老版本,建议升级一下,或者直接用config.dev.js和config.prod.js分环境配置,效率更高。