NervJS / taro

开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发微信/京东/百度/支付宝/字节跳动/ QQ 小程序/H5/React Native 等应用。 https://taro.zone/
https://docs.taro.zone/
Other
35.34k stars 4.77k forks source link

taro3.4.4升级失败 #12407

Closed SpringHgui closed 2 years ago

SpringHgui commented 2 years ago

相关平台

微信小程序

复现仓库

https://github.com/none/none 小程序基础库: 1 使用框架: Vue 3

复现步骤

taro项目 3.4.4下执行 taro update project

期望结果

项目升级至最新版本 3.5.4

实际结果

taro update project 👽 Taro v3.5.4

\ 正在获取最新版本信息...C:\Users\Sprin\AppData\Roaming\npm\nodemodules\@tarojs\cli\dist\presets\commands\update.js:339 = "^".concat; ^

ReferenceError: _ is not defined at C:\Users\Sprin\AppData\Roaming\npm\node_modules\@tarojs\cli\dist\presets\commands\update.js:339:43 at step (C:\Users\Sprin\AppData\Roaming\npm\node_modules\@tarojs\cli\dist\presets\commands\update.js:133:23)
at Object.next (C:\Users\Sprin\AppData\Roaming\npm\node_modules\@tarojs\cli\dist\presets\commands\update.js:74:20)
at fulfilled (C:\Users\Sprin\AppData\Roaming\npm\node_modules\@tarojs\cli\dist\presets\commands\update.js:5:58) at processTicksAndRejections (node:internal/process/task_queues:96:5)

环境信息

👽 Taro v3.5.4

  Taro CLI 3.5.4 environment info:
    System:
      OS: Windows 10
    Binaries:
      Node: 16.15.0 - C:\Program Files\nodejs\node.EXE
      Yarn: 1.22.15 - C:\Program Files\nodejs\yarn.CMD
      npm: 8.5.5 - C:\Program Files\nodejs\npm.CMD
feidaZhang commented 2 years ago
  1. 项目3.4.14
  2. 全局taro/cli 3.4.14
  3. taro update project 3.5.4
  4. ok!!

可以作为参考。猜测是taro/cli的版本需要和当前项目的版本保持一致。

yuconora commented 2 years ago

我这边

  Taro CLI 3.5.5 environment info:
    System:
      OS: Windows 10
    Binaries:
      Node: 16.17.0 - C:\Users\Admin\scoop\apps\nvm\current\nodejs\nodejs\node.EXE
      Yarn: 1.22.19 - C:\Users\Admin\scoop\apps\nvm\current\nodejs\nodejs\yarn.CMD
      npm: 8.15.0 - C:\Users\Admin\scoop\apps\nvm\current\nodejs\nodejs\npm.CMD

电脑上安装3.5.x 版本都有这个问题 执行 taro update project 会报这个错误 打开报错的文件 找到下图所示的位置 image

修改成 如下代码

let nervJSVersion = yield getLatestVersion('nervjs');
nervJSVersion = `^${nervJSVersion}`;

这个地方的报错有点奇怪 不知道是不是某些配置升级引起的 @Chen-jj 大佬那边有时间测试下

Chen-jj commented 1 year ago

感觉是模板字符串里使用了 await 的问题,可能与 nodejs 版本有关。Taro 可以去掉 nerv 相关代码