Open afishhhhh opened 4 years ago
Taro@3.0.7 ctx.modifyBuildTempFileContent 是 undefined?
Taro@3.0.7 ctx.modifyBuildTempFileContent 是 undefined?
Taro 3 没有这个方法的
相关平台
微信小程序
小程序基础库: 2.7.3 使用框架: React
复现步骤
// component.jsx config = { usingComponents: { 'popup': '/components/vant/popup/index' } } // plugin.js ctx.modifyBuildTempFileContent(({ tempFiles }) => { ... const { config } = tempFiles[filename] const { usingComponents } = config for (const [key, value] of Object.entries(usingComponents)) { usingComponents[key] = value.replace(/\/components\/vant/, '../../vant') } tempFiles[filename].config = { ...config, usingComponents } })
按文档写的
modifyBuildTempFileContent
可以在编译过程中修改config
,所以我用上面的代码替换usingComponents
的路径,从绝对路径替换为相对路径,最后编译的结果是编译失败,找不到/components/vant/popup/index
这个文件,但是我在编译过程中替换成了相对路径,为什么还是编译失败呢,输出的 dist 其实是正确的,小程序也能运行期望结果
编译成功
实际结果
编译失败
环境信息
Taro CLI 2.2.11 environment info: System: OS: macOS 10.14.6 Shell: 5.3 - /bin/zsh Binaries: Node: 12.18.3 - ~/.nvm/versions/node/v12.18.3/bin/node npm: 6.14.6 - ~/.nvm/versions/node/v12.18.3/bin/npm npmPackages: @tarojs/components: 2.2.11 => 2.2.11 @tarojs/components-qa: 2.2.11 => 2.2.11 @tarojs/mini-runner: 2.2.11 => 2.2.11 @tarojs/plugin-sass: 2.2.11 => 2.2.11 @tarojs/plugin-uglify: 2.2.11 => 2.2.11 @tarojs/router: 2.2.11 => 2.2.11 @tarojs/taro: 2.2.11 => 2.2.11 @tarojs/taro-alipay: 2.2.11 => 2.2.11 @tarojs/taro-h5: 2.2.11 => 2.2.11 @tarojs/taro-qq: 2.2.11 => 2.2.11 @tarojs/taro-quickapp: 2.2.11 => 2.2.11 @tarojs/taro-rn: 2.2.11 => 2.2.11 @tarojs/taro-swan: 2.2.11 => 2.2.11 @tarojs/taro-tt: 2.2.11 => 2.2.11 @tarojs/taro-weapp: 2.2.11 => 2.2.11 @tarojs/webpack-runner: 2.2.11 => 2.2.11 eslint-config-taro: 2.2.11 => 2.2.11 eslint-plugin-taro: 2.2.11 => 2.2.11 nerv-devtools: ^1.5.7 => 1.5.7 nervjs: ^1.5.7 => 1.5.7 stylelint-config-taro-rn: 2.2.11 => 2.2.11 stylelint-taro-rn: 2.2.11 => 2.2.11 taro-ui: ^2.3.2 => 2.3.2
是编译过程中,ctx.modifyBuildTempFileContent 方法替换配置处理的时机,是在用配置中路径去查找依赖组件之后,所以查找依赖组件时用的依然是绝对路径,所以报错了
Taro@3.0.7 ctx.modifyBuildTempFileContent 是 undefined?
Taro 3 没有这个方法的
所以官方文档一直没人更新。。
希望能加上去,毕竟3.0 也有 ctx.modifyBuildAssets
和 ctx.modifyWebpackChain
主要是 usingComponents 不能用绝对路径,如果可以我也不需要这样做了,原生是可以的 @luckyadam
相关平台
微信小程序
小程序基础库: 2.7.3 使用框架: React
复现步骤
按文档写的
modifyBuildTempFileContent
可以在编译过程中修改config
,所以我用上面的代码替换usingComponents
的路径,从绝对路径替换为相对路径,最后编译的结果是编译失败,找不到/components/vant/popup/index
这个文件,但是我在编译过程中替换成了相对路径,为什么还是编译失败呢,输出的 dist 其实是正确的,小程序也能运行期望结果
编译成功
实际结果
编译失败
环境信息