taro icon indicating copy to clipboard operation
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

Open Solyna opened this issue 1 year ago • 13 comments

相关平台

微信小程序

小程序基础库: 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 

Solyna avatar Dec 19 '23 03:12 Solyna

3.6.20 同样的报错

sologuy avatar Dec 19 '23 06:12 sologuy

3.6.20 同样的报错

我试了3.5.19 和3.6.20都会报错

Solyna avatar Dec 19 '23 06:12 Solyna

@Solyna @sologuy 麻烦提供一下可复现的 demo

Chen-jj avatar Dec 19 '23 06:12 Chen-jj

@Solyna @sologuy 麻烦提供一下可复现的 demo 业务代码太多,没办法摘出来demo 这是package.json构建命令: image image

Solyna avatar Dec 20 '23 02:12 Solyna

image

没看出和代码有什么区别,就是打包命令不同而已

@Solyna @sologuy 麻烦提供一下可复现的 demo

Solyna avatar Dec 20 '23 02:12 Solyna

@Solyna @sologuy 麻烦提供一下可复现的 demo

大佬,你再仔细看下,你们这个文件里面是不是少了什么? image

Solyna avatar Dec 20 '23 02:12 Solyna

+1

HongxuanG avatar Dec 22 '23 03:12 HongxuanG

好想mac没问题,win环境下就有这个问题

HongxuanG avatar Jan 01 '24 13:01 HongxuanG

好想mac没问题,win环境下就有这个问题

我这边就是mac,也有这问题

Solyna avatar Jan 04 '24 08:01 Solyna

我就改了个环境变量里的api地址,从本地的改成线上https就报这个错。改回本地服务器就正常。

headironc avatar Feb 01 '24 15:02 headironc

我就改了个环境变量里的api地址,从本地的改成线上https就报这个错。改回本地服务器就正常。

我修改完api,删除node_modules和dist目录重新安装编译解决了这个问题。再次修改环境变量值就再次执行这个操作

headironc avatar Feb 03 '24 06:02 headironc

我在升级Taro时也遇到了这个问题,现在有两种方案临时解决。一种是删除node_modules下的.cache目录重新执行build命令,另一种是将config/index.js里的cache关掉。

cache: {
  enable: false // Webpack 持久化缓存配置,建议开启。默认配置请参考:https://docs.taro.zone/docs/config-detail#cache
},

jackifinity avatar Mar 26 '24 09:03 jackifinity

升级到从3.6.16升级到最新版3.6.32 报同样问题, cache.enable 设为false,删除node_modules, 都无法解决

deng-yc avatar Jun 25 '24 07:06 deng-yc

cache.name 修改一下,猜测是两次打包命令使用的mode导致cache无法正确拿到导致的问题,因此将cache的子目录名跟mode关联可以解决。 image

SexySix avatar Jul 02 '24 01:07 SexySix