Open ztl8702 opened 1 year ago
尝试第一步:
上述错误说明,@tarojs/helper
的存在幽灵依赖@babel/traverse
。 看了一下 https://unpkg.com/@tarojs/helper@3.5.11/package.json 确实没有 @babel/traverse
用 pnpm packageExtensions 对 package.json 进行魔改:
"pnpm": {
"packageExtensions": {
"@tarojs/helper": {
"dependencies": {
"@babel/traverse": "*"
}
}
}
}
pnpm install
后,再次 pnpm run build:weapp
这次遇到 '@tarojs/taro-loader' 缺失。https://gist.github.com/ztl8702/f0055f968fea45a6e39cc4d1be78ff0f
这次遇到 '@tarojs/taro-loader' 缺失。https://gist.github.com/ztl8702/f0055f968fea45a6e39cc4d1be78ff0f
这就很蹊跷。
https://unpkg.com/@tarojs/webpack5-runner@3.5.11/package.json 里面明明有 @tarojs/taro-loader
这就很蹊跷。 https://unpkg.com/@tarojs/webpack5-runner@3.5.11/package.json 里面明明有
@tarojs/taro-loader
是当前包(package.json)幽灵依赖了 @tarojs/taro-loader
pnpm add --save-dev @tarojs/taro-loader
pnpm run build:weapp
编译成功。
为了支持 pnpm hoist=false
模式(姑且称为“无幽灵模式”?)下编译 taro 项目,需要如下改动:
1.@tarojs/taro-helper
需要增加依赖@babel/traverse
。https://github.com/NervJS/taro/issues/13144
@tarojs/taro-loader
复现步骤
npx @tarojs/cli init
在仓库根目录下创建
.npmrc
:pnpm install
pnpm build:weapp
预期结果:编译成功
实际结果:
完整错误:https://gist.github.com/ztl8702/5d9b0652d9a692b68f08a86694c2c82c
其他信息
在我运行
@tarojs/cli init
时,应该拉的是这个模板: https://github.com/NervJS/taro-project-templates/tree/v3.5/taro-ui