npm script 顺序执行多条命令,执行完切换node版本的命令后提示找不到node环境

环境描述

系统: WIN10
yarn: 1.10.1
node: 8.12.0 或者 11.10.1
npm: 6.4.1 或者 6.7.0
nvm: 1.1.7
npm-run-all: 4.1.5

问题描述

手上有几个通过create-react-app脚手架创建的项目,用了2个版本的node,分别是8.12.0以及11.10.1。电脑是WIN10,使用nvm-windows来管理node版本。每次切换项目的时,都手动输入
nvm use 11.10.1这样的命令来切换node版本,所以想利用npm script的能力来实现 自动切换node版本并且yarn start开启开发。

问题出现的环境背景及自己尝试过哪些方法

使用npm-run-all来顺序执行命令,package.json长这样,命令行使用yarn dev

  "scripts": {
    "sureVersion": "nvm use 11.10.1",
    "startDev": "node -v",
    "dev": "npm-run-all -s sureVersion startDev start",
    "start": "react-app-rewired start",
    "build": "react-app-rewired build",
    "test": "react-app-rewired test",
    "eject": "react-scripts eject"
  },

期待的结果

sureVersion,startDev,start 三个任务顺序执行。

实际看到的错误信息

执行第一次没问题
如图
CXL5`1E}JVFY7A93{YFHQ_O.png

执行第二次就凉了,提示系统找不到node,如图

VB}%T575TABCT5P9$R33CS0.png

或许的解决办法

我的猜想是切换了node版本以后等个1秒再执行其他命令,不知道是否可行,以及怎么实现。
猜想有可能错误,静候大佬的解决方案

阅读 1.7k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进