Почему у меня возникает эта ошибка при использовании ng serve в терминале zsh в vscode внутри проекта angular - PullRequest
0 голосов
/ 04 марта 2020

Чтение это Я обнаружил, что можно использовать zsh внутри VSCode, поэтому я настроил их внутри настроек. json для моего пользователя:

"terminal.integrated.shell.linux": "/usr/bin/zsh",
"terminal.integrated.fontFamily": "'SauceCodePro Nerd Font Mono','Source Code Pro'",
"terminal.integrated.fontSize": 14,

Но когда я попытался запустить мое Angular приложение ng serve, оно показывает:

zsh: command not found: ng

Так что после этого ответа, который имел похожую проблему, я добавил это к .zshr c file:

if [[ -s '/etc/zsh_command_not_found' ]]; then
  source '/etc/zsh_command_not_found'
fi

Но теперь это показывает это, и я не уверен, что это правильный пакет для установки:

➜ ng serve

No se ha encontrado la orden «ng», pero se puede instalar con:

sudo apt install ng-common

Что я могу сделать? Потому что с bash работает нормально.

1 Ответ

0 голосов
/ 23 марта 2020

Я обнаружил, что мне не хватает загрузки nvm в файл zshr c. Поэтому я добавил это в файл .zshr c:

export NVM_DIR="/home/espe/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

Тогда я подумал, что кто-то должен был столкнуться с этим раньше, и вот статья о том, как решить эту проблему . Таким образом, предыдущий код стал таким:

# lazyload nvm
# all props goes to http://broken-by.me/lazy-load-nvm/
# grabbed from reddit @ https://www.reddit.com/r/node/comments/4tg5jg/lazy_load_nvm_for_faster_shell_start/

lazynvm() {
  unset -f nvm node npm npx 2>/dev/null
  export NVM_DIR=~/.nvm
  [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
  if [ -f "$NVM_DIR/bash_completion" ]; then
    [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
  fi
}

nvm() {
  lazynvm 
  nvm $@
}

node() {
  lazynvm
  node $@
}

npm() {
  lazynvm
  npm $@
}

npx() {
  lazynvm
  npx $@
}

# Add every binary that requires nvm, npm or node to run to an array of node globals
NODE_GLOBALS=(`find ~/.nvm/versions/node -maxdepth 3 -type l -wholename '*/bin/*' | xargs -n1 basename | sort | uniq`)

for cmd in "${NODE_GLOBALS[@]}"; do
  eval "${cmd}(){ unset -f ${NODE_GLOBALS} 2>/dev/null; lazynvm; ${cmd} \$@ }"
done

Также, благодаря scttcper , за улучшенное решение.

Источник:

...