Cli 3.4.1 执行 taro build --type weapp 构建命令时项目依赖 @tarojs/mini-runner 版本从 3.4.1 被升级到了 3.4.3

0x6upsns  于 5个月前  发布在  其他
关注(0)|答案(2)|浏览(58)

相关平台

微信小程序

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

复现步骤

第一步:初始化一个仓库,package.json 中依赖都为 3.4.1(项目中不存在node_modules,和lock文件)

第二步:执行 taro build --type weapp --watch 或(yarn dev:weapp)

第三步:发现控制台提示 ”缺少npm包@tarojs/mini-runner“,并执行自动安装依赖逻辑

第四步:发现安装完成后,package.json 中的 @tarojs/mini-runner 依赖版本从 3.4.1 升级到了 3.4.3 (即最新版本)

期望结果

可以自动安装依赖,但应该根据项目中依赖版本安装;
同时不能改变项目中 package.json 中的依赖信息。

实际结果

@tarojs/mini-runne:3.4.1 的配置确安装了最新的版本 3.4.3

环境信息

Taro CLI 3.4.1 environment info:
    System:
      OS: Windows 10
    Binaries:
      Node: 14.16.0 - C:\nodejs\node.EXE
      Yarn: 1.22.17 - C:\nodejs\yarn.CMD
      npm: 8.5.4 - C:\nodejs\npm.CMD

补充信息

taro-service/src/platform-plugin-base.ts 中 getRunner 函数有动态获取 Npm 包逻辑,是不是这里需要做一下处理,应该获取当前cli的版本号进行对应依赖下载,而不是直接安装最新的版本。

protected async getRunner () {
    const { appPath } = this.ctx.paths
    const { npm } = this.helper
    const runner = await npm.getNpmPkg('@tarojs/mini-runner', appPath)
    return runner.bind(null, appPath)
  }

相关问题