taro icon indicating copy to clipboard operation
taro copied to clipboard

Taro v3.5.1 编译支付宝插件报错 undefined (reading 'import')

Open atom-7 opened this issue 2 years ago • 2 comments

相关平台

支付宝小程序

小程序基础库: 2 使用框架: React

复现步骤

  1. 初始化项目 npx @tarojs/cli init myTaro
  2. 执行 taro build --plugin alipay
  3. 出现报错 else if (Array.isArray(app.import)) {
  4. TypeError: Cannot read properties of undefined (reading 'import')

期望结果

正常打包

实际结果

myApp/taro3.5.1/node_modules/@tarojs/webpack5-runner/dist/plugins/MiniSplitChunksPlugin.js:483 else if (Array.isArray(app.import)) { ^

TypeError: Cannot read properties of undefined (reading 'import') at getEntryPath (/mnt/d/A项目/myApp/taro3.5.1/node_modules/@tarojs/webpack5-runner/src/plugins/MiniSplitChunksPlugin.ts:577:36) at MiniSplitChunksPlugin.getAppEntry (/mnt/d/A项目/myApp/taro3.5.1/node_modules/@tarojs/webpack5-runner/src/plugins/MiniSplitChunksPlugin.ts:582:12) at MiniSplitChunksPlugin.getSubpackageConfig (/mnt/d/A项目/myApp/taro3.5.1/node_modules/@tarojs/webpack5-runner/src/plugins/MiniSplitChunksPlugin.ts:589:27) at MiniSplitChunksPlugin.apply (/mnt/d/A项目/myApp/taro3.5.1/node_modules/@tarojs/webpack5-runner/src/plugins/MiniSplitChunksPlugin.ts:330:29) at createCompiler (/mnt/d/A项目/myApp/taro3.5.1/node_modules/webpack/lib/webpack.js:73:12) at create (/mnt/d/A项目/myApp/taro3.5.1/node_modules/webpack/lib/webpack.js:134:16) at webpack (/mnt/d/A项目/myApp/taro3.5.1/node_modules/webpack/lib/webpack.js:158:32) at f (/mnt/d/A项目/myApp/taro3.5.1/node_modules/webpack/lib/index.js:63:16) at /mnt/d/A项目/myApp/taro3.5.1/node_modules/@tarojs/webpack5-runner/src/index.mini.ts:28:29 at new Promise ()

环境信息

👽 Taro v3.5.1


  Taro CLI 3.5.1 environment info:
    System:
      OS: Linux 4.4 Ubuntu 20.04.3 LTS (Focal Fossa)
      Shell: 5.0.17 - /bin/bash
    Binaries:
      Node: 16.13.0 - ~/.nvm/versions/node/v16.13.0/bin/node
      Yarn: 1.22.19 - /mnt/d/nodejs/yarn
      npm: 8.1.0 - ~/.nvm/versions/node/v16.13.0/bin/npm
    npmPackages:
      @tarojs/cli: 3.5.1 => 3.5.1
      @tarojs/components: 3.5.1 => 3.5.1
      @tarojs/helper: 3.5.1 => 3.5.1
      @tarojs/plugin-framework-react: 3.5.1 => 3.5.1
      @tarojs/plugin-platform-alipay: 3.5.1 => 3.5.1
      @tarojs/plugin-platform-jd: 3.5.1 => 3.5.1
      @tarojs/plugin-platform-qq: 3.5.1 => 3.5.1
      @tarojs/plugin-platform-swan: 3.5.1 => 3.5.1
      @tarojs/plugin-platform-tt: 3.5.1 => 3.5.1
      @tarojs/plugin-platform-weapp: 3.5.1 => 3.5.1
      @tarojs/react: 3.5.1 => 3.5.1
      @tarojs/router: 3.5.1 => 3.5.1
      @tarojs/runtime: 3.5.1 => 3.5.1
      @tarojs/shared: 3.5.1 => 3.5.1
      @tarojs/taro: 3.5.1 => 3.5.1
      @tarojs/taro-h5: 3.5.1 => 3.5.1
      babel-preset-taro: 3.5.1 => 3.5.1
      eslint-config-taro: 3.5.1 => 3.5.1
      react: ^18.0.0 => 18.2.0

报错信息 image

atom-7 avatar Aug 03 '22 08:08 atom-7

我简单的修改了本地的 taro3.5.1\node_modules\@tarojs\webpack5-runner\dist\plugins\MiniSplitChunksPlugin.js 282 提前return了 image 可以打包了,但是出现了两次compile,编译(支付宝插件)出来后,也是加载不出来(表现如 12204) image

atom-7 avatar Aug 03 '22 08:08 atom-7

Taro 暂时还没完全适配支付宝小程序插件

Chen-jj avatar Aug 09 '22 09:08 Chen-jj

微信小程序插件也会出现相同的问题,因为此时 compiler.options.entry.app 并不存在,entry 应当是插件的 page

kagawagao avatar Aug 10 '22 11:08 kagawagao

目前遇到完全相同的问题,没有解决的方式,官方好像在3.x版本后就没有办法编译正常的支付宝小程序插件 @Chen-jj 目前有计划推进支付宝小程序插件的编译吗? 或者,有没有临时兼容的方式?

TangSeng-Liu avatar Nov 29 '22 08:11 TangSeng-Liu

y.app 并不存在,entry 应当是插件的

请问如何修复呢?

weiaiSanli avatar Mar 06 '23 09:03 weiaiSanli

y.app 并不存在,entry 应当是插件的

请问如何修复呢?

不要使用 webpack5 编译模式

kagawagao avatar Mar 06 '23 09:03 kagawagao

y.app 并不存在,entry 应当是插件的

请问如何修复呢?

不要使用 webpack5 编译模式

牛,搞定了,非常感谢!

weiaiSanli avatar Mar 06 '23 09:03 weiaiSanli