taro
taro copied to clipboard
打包报错:✖ Errors: ModuleBuildError: Module build failed: Error: Final loader (./node_modules/@tarojs/taro-loader/lib/entry-cache.js) didn't return a Buffer or String
相关平台
微信小程序
小程序基础库: 3.1.5 使用框架: React
复现步骤
运行 npm run build:prod:weapp 报错
期望结果
正常运行
实际结果
打包报错:✖ Errors: ModuleBuildError: Module build failed: Error: Final loader (./node_modules/@tarojs/taro-loader/lib/entry-cache.js) didn't return a Buffer or String
环境信息
Taro CLI 3.6.20 environment info:
System:
OS: macOS 13.6.1
Shell: 5.9 - /bin/zsh
Binaries:
Node: 16.20.0 - /usr/local/bin/node
Yarn: 1.22.17 - /usr/local/bin/yarn
npm: 8.19.4 - /usr/local/bin/npm
npmPackages:
@tarojs/cli: 3.6.20 => 3.6.20
@tarojs/components: 3.6.20 => 3.6.20
@tarojs/helper: 3.6.20 => 3.6.20
@tarojs/plugin-framework-react: 3.6.20 => 3.6.20
@tarojs/plugin-platform-alipay: 3.6.20 => 3.6.20
@tarojs/plugin-platform-h5: 3.6.20 => 3.6.20
@tarojs/plugin-platform-jd: 3.6.20 => 3.6.20
@tarojs/plugin-platform-qq: 3.6.20 => 3.6.20
@tarojs/plugin-platform-swan: 3.6.20 => 3.6.20
@tarojs/plugin-platform-tt: 3.6.20 => 3.6.20
@tarojs/plugin-platform-weapp: 3.6.20 => 3.6.20
@tarojs/react: 3.6.20 => 3.6.20
@tarojs/runtime: 3.6.20 => 3.6.20
@tarojs/shared: 3.6.20 => 3.6.20
@tarojs/taro: 3.6.20 => 3.6.20
@tarojs/taro-loader: 3.6.20 => 3.6.20
@tarojs/webpack5-runner: 3.6.20 => 3.6.20
babel-preset-taro: 3.6.20 => 3.6.20
eslint-config-taro: 3.6.20 => 3.6.20
react: ^18.0.0 => 18.2.0
taro-ui: ^3.1.1 => 3.2.0
3.6.20 同样的报错
3.6.20 同样的报错
我试了3.5.19 和3.6.20都会报错
@Solyna @sologuy 麻烦提供一下可复现的 demo
@Solyna @sologuy 麻烦提供一下可复现的 demo 业务代码太多,没办法摘出来demo 这是package.json构建命令:
![]()
没看出和代码有什么区别,就是打包命令不同而已
@Solyna @sologuy 麻烦提供一下可复现的 demo
@Solyna @sologuy 麻烦提供一下可复现的 demo
大佬,你再仔细看下,你们这个文件里面是不是少了什么?
+1
好想mac没问题,win环境下就有这个问题
好想mac没问题,win环境下就有这个问题
我这边就是mac,也有这问题
我就改了个环境变量里的api地址,从本地的改成线上https就报这个错。改回本地服务器就正常。
我就改了个环境变量里的api地址,从本地的改成线上https就报这个错。改回本地服务器就正常。
我修改完api,删除node_modules和dist目录重新安装编译解决了这个问题。再次修改环境变量值就再次执行这个操作
我在升级Taro时也遇到了这个问题,现在有两种方案临时解决。一种是删除node_modules下的.cache目录重新执行build命令,另一种是将config/index.js里的cache关掉。
cache: {
enable: false // Webpack 持久化缓存配置,建议开启。默认配置请参考:https://docs.taro.zone/docs/config-detail#cache
},
升级到从3.6.16升级到最新版3.6.32 报同样问题, cache.enable 设为false,删除node_modules, 都无法解决
cache.name 修改一下,猜测是两次打包命令使用的mode导致cache无法正确拿到导致的问题,因此将cache的子目录名跟mode关联可以解决。