我的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的版本时,无法识别。当我手动完成操作时,只需简单地一一键入命令即可。
答案 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
;例如:curl -L https://git.io/n-install | bash
$PROFILE
文件中,或者通过Windows注册表中的持久性环境变量定义)。 :$HOME/n/bin
必须添加到$env:Path
,并且$env:PREFIX
必须设置为$HOME/n
(如果要从WSL外部运行PowerShell,请相应地调整WSL的路径)。 答案 1 :(得分:-1)
我在 nvm 使用 XXX 后使用 powershell Start-Sleep 方法解决了这个问题。它有所帮助,目前运行良好。