Powershell не распознает npm после изменения версии nvm узла - PullRequest
1 голос
/ 25 марта 2020

У меня проблема с моим скриптом 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

1 Ответ

1 голос
/ 25 марта 2020

nvm предназначен для запуска в процессе вашей оболочки , которая поддерживается только для POSIX-совместимых оболочек, таких как bash, но не для PowerShell:

nvm работает на любой POSIX-совместимой оболочке (sh, da sh, k sh, zsh, bash), в частности на следующих платформах: unix, macOS и windows WSL.

На Unix -подобных платформах и, возможно, WSL, рассмотрим Node.js менеджер версий n в качестве альтернативы, который не зависит от изменения среды текущей оболочки.

  • n-install позволяет устанавливать n непосредственно из GitHub; например:
    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).
...