在nvm更改节点版本后,Powershell无法识别npm

时间:2020-03-25 08:01:43

标签: powershell npm nvm

我的Powershell脚本有问题。我想构建一个基于节点10.17.0的项目,然后将结果复制到另一个基于节点8.11.4的项目中,然后运行该项目。

   cd $PathToWebLibs

   Write-Host "..........Switching to node v10.17.0.........." -ForegroundColor Magenta
   nvm use 10.17.0

   Write-Host "..........Building WebLibs.........." -ForegroundColor Magenta
   npm run build_lib

   Write-Host "..........Copying files from ($PathToWebLibs\dist\rsp\core-ui) to ($PathToSFP\node_modules\@rsp) .........." -ForegroundColor Magenta

   cp -Recurse -Force ($PathToWebLibs + "\dist\rsp\core-ui") ($PathToSFP + "\node_modules\@rsp")

   cd $PathToSFP

   Write-Host "..........Switching to node v8.11.4.........." -ForegroundColor Magenta
   nvm use 8.11.4


   Write-Host "..........Starting SFP.........." -ForegroundColor Magenta
   npm run start

问题在于,当nvm更改节点npm的版本时,无法识别。当我手动完成操作时,只需简单地一一键入命令即可。

我可以添加正确设置的系统环境路径。我检查了 enter image description here

2 个答案:

答案 0 :(得分:1)

nvm设计为由您的shell在进程内运行,仅受bash等POSIX兼容外壳支持,而PowerShell不支持:< / p>

nvm可在任何POSIX兼容外壳程序(sh,dash,ksh,zsh,bash)上使用,尤其是在以下平台上:unix,macOS和Windows WSL。

在类似Unix的平台上以及可能在WSL上,考虑使用Node.js版本管理器n作为替代方案,它不依赖于修改当前shell的环境。

  • n-install允许直接从GitHub安装n;例如:
    curl -L https://git.io/n-install | bash
  • 但是,此特定的安装方法(包括Node.js本身的安装)当前需要在PowerShell中进行其他配置(在PowerShell $PROFILE文件中,或者通过Windows注册表中的持久性环境变量定义)。 :$HOME/n/bin必须添加到$env:Path,并且$env:PREFIX必须设置为$HOME/n(如果要从WSL外部运行PowerShell,请相应地调整WSL的路径)。

答案 1 :(得分:-1)

我在 nvm 使用 XXX 后使用 powershell Start-Sleep 方法解决了这个问题。它有所帮助,目前运行良好。