簡體   English   中英

在 zsh 中安裝 npm 后找不到命令

[英]Command not found after npm install in zsh

我在 zsh 中通過 npm 安裝誓言時遇到一些問題。 這就是我得到的。 我嘗試使用和不使用 -g 選項安裝它。 你知道這里出了什么問題嗎?

[❤  ~/Desktop/sauce-node-demo:master] npm install -g vows
npm http GET https://registry.npmjs.org/vows
npm http 304 https://registry.npmjs.org/vows
npm http GET https://registry.npmjs.org/eyes
npm http GET https://registry.npmjs.org/diff
npm http 304 https://registry.npmjs.org/eyes
npm http 304 https://registry.npmjs.org/diff
/usr/local/share/npm/bin/vows -> /usr/local/share/npm/lib/node_modules/vows/bin/vows
vows@0.6.4 /usr/local/share/npm/lib/node_modules/vows
├── eyes@0.1.8
└── diff@1.0.3
[❤  ~/Desktop/sauce-node-demo:master] vows
zsh: command not found: vows

~/.zshrc .zshrc 開頭添加source /home/YOUUSERNAME/.bash_profile

並且將檢測到所有丟失的命令。

對於Mac用戶:添加source /Users/YOUUSERNAME/.bash_profile

如果您使用 Homebrew 安裝了 Node.js,則可以在/usr/local/share/npm/bin中找到 npm 二進制文件。 你應該確保這個目錄在你的 PATH 環境變量中。 因此,在您的~/.zshrc文件中添加export PATH=/usr/local/share/npm/bin:$PATH

如果您使用 nvm 添加,請將以下內容添加到您的 .zshrc 文件中並重新啟動終端,因為 zsh shell 未檢測到該文件的二進制文件,我們指定了路徑

export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

對於Mac用戶:

除了以下內容:nvm、iterm2、zsh

我發現使用.bashrc而不是.profile.bash_profile引起的問題要少得多。

只需將后者添加到我的.zshrc文件中:

source $HOME/.bashrc

僅限 Mac 用戶
假設您之前安裝了 nvm,並且 npm 正確
(下面是關於如何安裝它的分步指南:
為 Mac 用戶安裝 nvm )。

你需要:

找到“.zshrc”文件:

  • 打開終端。
  • 鍵入open ~以訪問您的主目錄。
  • Cmd + Shift + . 在 Finder 中顯示隱藏文件。
  • 找到.zshrc

編輯“.zshrc”文件:

  • 將: source /Users/_user_Name_/.bash_profile添加到文件頂部(其中 _user_Name_ 代表您的用戶。

  • 保存文件,然后關閉終端窗口。

Ubuntu上,安裝ZSH之后,之前在bash終端上安裝了Node或其他包,

首次打開:

nano .zshrc

並取消注釋第二行:

export PATH=$HOME/bin:/usr/local/bin:$PATH

這對我有用,無需寫任何行,我認為這個選項在Mac上也可用。

對於macOS用戶:考慮使用.profile而不是.bash_profile 您可能仍需要手動將其添加到~/.zshrc

source $HOME/.profile

注意默認沒有這樣的文件! 引用 slhck https://superuser.com/a/473103

無論如何,如果文件不存在,您可以簡單地創建文件並在文本編輯器中打開它。

 touch ~/.profile open -e !$

附加值是,使用單個文件設置環境感覺很好,不管使用什么 shell。 在 zsh 中加載 bash 配置文件感覺很尷尬。

引用 Cos https://stackoverflow.com/a/415444/2445063接受的答案

.profile只是/bin/sh最初使用的登錄腳本文件名。 bash 通常與/bin/sh向后兼容,如果存在.profile ,它將讀取

遵循 Filip Ekberg 的研究/意見https://stackoverflow.com/a/415410/2445063

.profile相當於根的.bash_profile 我認為更改名稱是為了讓其他 shell(csh、sh、tcsh)也可以使用它。 (您不需要一個作為用戶)

回到 slhck,關於 bash 的注意事項

(...) 一旦你創建了一個名為~/.bash_profile的文件,你的~/.profile將不再被讀取。

另一件事要嘗試,我的答案是取消注釋~/.zshrc中的第一個export

# If you come from bash you might have to change your $PATH.
export PATH=$HOME/bin:/usr/local/bin:$PATH

我通過brew upgrade node解決了這個問題

轉到您的終端並運行: nano .zshrc

注意:如果你沒有這個目錄,你可以使用 mkdir 命令創建它: mkdir ~/.zshrc

將以下內容粘貼到包含“export ZSH”的行下方的任何位置:

export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

現在只需點擊 ^X,系統會詢問您是否要保存。 說“是”並按回車鍵,如果它說您正在更改文件,請再次按回車鍵。 保存后您可能需要重新啟動終端。

如果您之前安裝過 node,請嘗試使用node -v作為快速測試。

以我的拙見,首先,您必須確保安裝了任何類型的 Node 版本。 對於該類型:

nvm ls

如果你沒有得到任何版本,這意味着我是對的 :) 然后你必須輸入:

nvm install <node_version**>

** 您可以在Node 網站上找到的實際版本

然后你將擁有 Node,你將能夠使用npm 命令

對我來說,將export PATH=/usr/local/share/npm/bin:$PATH添加到.zshrc的公認答案不起作用。 我也嘗試添加NVM_DIR來解決我的問題。

  1. 試試vi .bashrc
  2. 你會發現如下一行。 復制它。

    export NVM_DIR="$HOME/.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

  3. 將復制的內容粘貼到.zshrc文件

  4. 重啟終端

我希望這能解決你的問題。

對於任何仍然有問題的人。 不要忘記注銷並再次登錄。

就我而言,重新安裝節點解決了這個問題。 任何人都可以通過以下網站安裝節點:

https://nodejs.org/en/download/

就我而言,我使用 NVM 安裝了節點,安裝 z Shell 后,節點和 nvm 命令不起作用。 所以對我有用的是用這個命令再次安裝 nvm:

wget https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash
sudo zsh install.sh

上面的命令再次安裝了 nvm,因為已經安裝了節點,它會在 .zshrc 文件中自動添加節點路徑,一切正常。

對於 MAC:我嘗試了上述一些方法,但無濟於事,無法進行任何工作。

我確實安裝了 BREW,所以雖然這不是最好的方法,但使用 zsh,我做到了:

  1. sudo chown -R $(whoami) /usr/local/share/man/man8 (用於 brew 訪問)
  2. brew update && brew install npm (我已經安裝了節點)
  3. npm -v (確認安裝)
  4. nano ~/.zshrc (清空文件更改並保存)

這對我有用。 希望這可以幫助某人。 #1困擾着我,但我現在會忍受。

在 Mac Catalina 上使用 Node v12+,全局依賴項顯示在/$HOME/.npm-global/bin

添加

export PATH="$HOME/.npm-global/bin:$PATH"

~/.bash_profile將所有內容保存在一個地方,然后添加

source $HOME/.bash_profile

~/.zshrc如果它還沒有的話就可以了。 無需注銷並重新登錄,只需重新啟動終端即可。

我在安裝 Vercel CLI 時遇到了同樣的問題。

就我而言,使用sudo安裝。

示例: sudo npm i -g vercel

它在 zsh 中對我有用。 嘗試nvm install --latest-npm

只是在我的終端上寫這個就解決了這個問題。 請注意,我必須在我的項目文件夾中單獨編寫它。

export PATH="$HOME/.npm-packages/bin:$PATH"
export PATH="$HOME/.node/bin:$PATH"

來源: https ://cloudlinuxtech.com/npm-command-not-found-fix/

在我的情況下,nvm 似乎忘記了全局默認值——也許是我第一次添加它后所做的一些安裝。

簡單地重新混疊就可以了:

nvm alias default [insert version number here]

打開一個新終端以使其生效

我認為問題更多是關於 ZSH 的完成。

您需要在 .zshrc 中添加這一行:

zstyle ':completion:*' rehash true

如果你有Oh-my-zsh,已經做了PR,可以集成直到拉取: https ://github.com/robbyrussell/oh-my-zsh/issues/3440

只需從以下位置下載 NodeJS: https : //nodejs.org/it/download/

對我來說工作 ;)

對於OSX Catalina用戶

brew install node@14

我正在使用節點 14,因為 Angular 不支持最新版本(不知道為什么).. 然后

echo 'export PATH="/usr/local/opt/node@14/bin:$PATH"' >> ~/.zshrc

有時簡單的事情會奏效。 卸載節點並再次安裝對我有用。

brew uninstall node
brew install node
npm update

在你的 .zshrc 文件末尾添加:

source $HOME/.zshrc.pre-oh-my-zsh 

這立即解決了我的問題。

在我的情況下,這發生在我將 iterm2 配置為顯示 git 分支名稱之后。 我基本上讓我的 iterm2 看起來更優雅。 但我注意到我的 vscode 終端正在檢測 nvm 和 npm 命令

我在配置 iterm2 時在 .zshrc 文件中添加了一些行。 我添加了 oh-my-zsh。

但是將以下行添加到.zshrc 文件的頂部對我有用。 如果它不起作用,請殺死 vscode 終端並再次打開它

希望這會對某人有所幫助

 export NVM_DIR=~/.nvm [ -s "$NVM_DIR/nvm.sh" ] &&. "$NVM_DIR/nvm.sh"

使用 Homebrew 安裝后收到此消息

在此處輸入圖像描述

所以我將這些行添加到.zshrc並且它起作用了。

export PATH="/usr/local/opt/node@16/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/node@16/lib"
export CPPFLAGS="-I/usr/local/opt/node@16/include"

對於使用 windows- nvm的 Windows,我在安裝附加版本的節點后遇到了問題。 我的 npm 停止工作但只在 ZSH 中。 bash、Powershell 和 cmd 都工作正常。 最終修復它的是為alias npm="npm.cmd"的 zsh 添加一個額外的別名,它又開始工作了。 我認為 zsh 正在努力尋找正確的二進制文件,因此 .cmd 文件解決了這個問題。

我用 nvm 安裝了節點,我遇到的問題是我有 2 個版本的節點,我將它們與命令 nvm use v12.xx.0 一起使用。 但不知何故,它們都分離了,我不得不再次將它與 nvm 其中之一一起使用,它又開始正常工作了。 所以命令是(如果你至少安裝了一個版本的 nvm):

nvm 使用 vxx.xx.0

我安裝了 zsh shell 和 Node 以及npmrc 我已經使用它很多年了,突然它開始給我這個錯誤。 這里的答案都沒有幫助我解決這個問題。

原來我最近更新了我的 Node 版本,我不得不再次安裝npmrc 因此,如果有人在升級節點版本后遇到此問題,請嘗試

npm install -g npmrc

使用 VS Code 解決此問題的更直觀的方法是:

  1. 打開終端 window(如果你在 VS Code 項目類型中:Control + ` 打開終端窗口)

  2. 在您的終端類型code ~/.zshrc

  3. 在 .zshrc 的頂部添加source /Users/<replace-with-home-folder-name>/.bash_profile

  4. 保存文件

  5. 重啟終端

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM