インストール後にGulpコマンドが見つかりません


97

私はgulp(globally)をインストールしましたが、次のコードを実行したため、うまくいったようです:

├── tildify@0.2.0
├── interpret@0.3.5
├── pretty-hrtime@0.2.1
├── deprecated@0.0.1
├── archy@0.0.2
├── minimist@0.2.0
├── semver@2.3.2
├── orchestrator@0.3.7 (stream-consume@0.1.0, sequencify@0.0.7, end-of-stream@0.1.5)
├── chalk@0.5.1 (escape-string-regexp@1.0.1, ansi-styles@1.1.0, supports-color@0.2.0, strip-ansi@0.3.0, has-ansi@0.1.0)
├── gulp-util@2.2.20 (lodash._reinterpolate@2.4.1, dateformat@1.0.8-1.2.3, vinyl@0.2.3, through2@0.5.1, multipipe@0.1.1, lodash.template@2.4.1)
├── liftoff@0.12.0 (extend@1.2.1, minimist@0.1.0, resolve@0.7.4, findup-sync@0.1.3)
└── vinyl-fs@0.3.5 (graceful-fs@3.0.2, lodash@2.4.1, mkdirp@0.5.0, strip-bom@0.3.1, vinyl@0.2.3, through2@0.5.1, glob-watcher@0.0.6, glob-stream@3.1.14)

しかし、タイプgulpすると-bash: gulp: command not found

何が起こっているのでしょうか?


4
これを解決するために、私はやったsudo install gulp -g。それはうまくいった
Mr_Green

10
Mr_Greenの意味:sudo npm install
gulp

回答:


174

npmが間違ったディレクトリにインストールされたことが判明したため、次のコードを実行して「npm configプレフィックス」を変更する必要がありました。

npm config set prefix /usr/local

次に、gulpをグローバルに再インストールし(-g paramを使用)、正しく動作しました。

この記事は私が解決策を見つけた場所です:http : //webbb.be/blog/command-not-found-node-npm


2
ありがとう!私の問題も解決しました:)
反乱

2
すごい。ありがとうございました。
Andrew

2
また、解決策は私を助けました
セルゲイアンドレエフ2017

2
ありがとう、これでうまくいきました。とても奇妙。Macbook 1にインストールしましたが、動作しますが、動作しません。これを実行する必要があります。クレイジー。
axelvnk

2
StackOverflowがこれを最初の回答として表示しないのはなぜですか?明らかにそれは正しいものです。
Anand Sainath

58

質問が反対票を投じられた理由はわかりませんが、同じ問題があり、ブログ投稿に従って問題を解決することをお勧めします。追加する必要があることの1つは、私の場合、実行した後のことです。

npm config set prefix /usr/local

npm root -gがを指していることを確認しましたが、に/usr/local/lib/node_modules/npmインストールするにgulp/usr/local/lib/node_modules、以下を使用する必要がありましたsudo

sudo npm install gulp -g


私はこの解決策を探していました!ありがとうございました!コマンド:npm config set prefix /usr/local解決された問題!
north.inhale 2017

21

使用している場合tcsh(これはMac OS Xのデフォルトのシェルです)、おそらくrehashインストールが完了した直後にシェルに入力する必要があります。

npm install -g gulp

直後に続く:

rehash

そうでなければ、これが初めてのインストールgulpである場合、新しい実行可能ファイルがインストールされていることをシェルが認識しない可能性があります。そのため、新しいシェルを起動するかrehash、現在のシェルを入力する必要があります。

(これは基本的に、グローバルにインストールするコマンドごとに1回限りのものです。)


17

私はこれが古いスレッドであることを理解していますが、Future-Meおよび後世のために、「running npm as sudo」のディスカッションの前後に2セントを追加する必要があると考えました。免責事項:私はWindowsを使用していません。これらの手順は、仮想および物理の両方の非Windowsマシンでのみ実証されています。

権限をnpmのデフォルトディレクトリに変更することで、sudoを使用する必要を回避できます。


方法:なしでnpmを実行するために権限を変更する sudo

ステップ1:npmのデフォルトディレクトリの場所を確認します。

  • これを行うには、ターミナルを開いて実行します。
    npm config get prefix

ステップ2:そのコマンドの出力に基づいて続行します。

  • シナリオ1: npmのデフォルトディレクトリは/usr/local
    ほとんどのユーザーの場合、出力にはnpmのデフォルトディレクトリが/ usr / localであることが示されます。この場合、ステップ4にスキップしてディレクトリの権限を更新できます。
  • シナリオ2: npmのデフォルトディレクトリが/usror /Users/YOURUSERNAME/node_modulesまたは/Something/Else/FishyLooking
    npmのデフォルトディレクトリが/ usr / localではないが、説明できない、または怪しげに見える場合は、手順3に進み、npmのデフォルトディレクトリを変更する必要があります。または、はるかに大きな規模で権限めちゃくちゃにするリスクがあります

ステップ3:npmのデフォルトディレクトリを変更します。

  • これには、グローバルインストール専用のディレクトリを作成して$ PATHにそのディレクトリを追加するなど、いくつかの方法がありますが、/ usr / localはおそらくすでにパスにあるため、npmを変更する方が簡単だと思いますそのデフォルトのディレクトリ。そのようです: npm config set prefix /usr/local
    • 私が言及した他のアプローチの詳細については、こちらのnpmドキュメントを参照してください

ステップ4:npmのデフォルトディレクトリの権限を更新します。

  • npmのデフォルトディレクトリが適切な場所にあることを確認したら、次のコマンドを使用して、そのアクセス許可を更新できます。
    sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

これで、npm <whatever>なしで実行できるはずsudoです。注:これらの変更を有効にするには、端末を再起動する必要がある場合があります。


7

私は次の手順を実行して同様の問題があり、それはうまくいきました.macターミナルに移動してコマンドを実行し、

1.npm構成設定接頭辞/ usr / local

2. sudo chown -R $(whoami)$(npm config get prefix)/ {lib / node_modules、bin、share}

この2つのコマンドはnpmパスを正しく設定し、npmでsudoを使用する必要がなくなります。次にgulpをアンインストールします

  1. npmアンインストールgulp

  2. sudoを使用せずに再度lulpをインストールし、npm install gulp -g

これはうまくいくはずです!!


4

インストール後に「コマンドが見つかりません」という問題が発生しましたが、上記の解決策で説明したように/ usr / localにインストールされました。

私の問題は、sudoを使用してインストールを実行したことが原因のようです。私は次のことをしました。

  1. sudoでgulpを再度削除する
  2. / usr / local / lib / node_modulesの所有者を自分のユーザーに変更する
  3. sudoなしでgulpを再インストールします。「npm install gulp -g」

1
sudoを使用してローカルに何もインストールする必要がないこと、そしてなぜsudoを使用する必要があるのか​​-sudoを使い始めたときに私がコマンドラインをsudoとして実行しないと問題が発生する-それはユーザーの下で日々の開発。私はあなたのやり方はもっと正しいと思う傾向があります-sudoは現時点では修正されているようですが、常に最良の答えであるとは限りません。
2015

3

これを行う必要がありますnpm install --global gulp。それは私にとってはうまくいき、私もこの問題を抱えていました。これは、このパッケージをグローバルにインストールしなかったためです。


3

Macを実行している場合は、root権限を使用します

sudo npm install gulp-cli --global

インストールされているかどうかを確認するには

gulp -v

CLIバージョン:2.2.0(出力)

ローカルバージョン:不明


1

私はこれをWin10で上と他の答えの組み合わせを使用して動作させました。他の人と将来の私のためにここに投稿します。

私はここからの指示に従いました:https ://gulpjs.com/docs/en/getting-started/quick-startがgulp --versionを入力した後の最後のステップで、メッセージ-bash:gulp:command not foundが表示されました

これを修正するには:

  1. %AppData%\ npmをPath環境変数に追加しました
  2. すべてのgitbash(cmd、powershellなど)を閉じ、gitbashを再起動しました。
  3. 次にgulp --versionが機能しました

また、グローバルにgulpをインストールしない理由とそれを削除する方法の理由として、以下が見つかります(ただし、これが望ましいかどうかはわかりません)。

gulp- "cli"は何を表していますか?

グローバルにNPMからGulp CLIをアンインストールする方法は?


0

私の場合、npm installの前にsudoを追加すると、gulpコマンドで問題が見つかりませんでした

sudo npm install


0

プレフィックスをそのままにしたい場合は、そのbin dirをPATH変数にエクスポートします。
export PATH=$HOME/your-path/bin:$PATH
この行を$ HOME / .profileに追加し、それを取得しました。

接頭辞をに設定すると/usr/local、が使用されるようsudoになるので、ユーザーdirに置きたいと思います。接頭辞はで確認できますnpm prefix -g

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.