web-dev-qa-db-ja.com

Nodeパッケージ(Grunt)がインストールされていますが利用できません

gruntを使用して github jquery-ui library をビルドしようとしていますが、npm installを実行した後、 readme file に従ってコマンドを実行できません。 No command 'grunt' foundを与えるだけです:

james@ubuntu:~/Documents/projects/ad2/lib/jquery-ui$ grunt build
No command 'grunt' found, did you mean:
 Command 'grun' from package 'grun' (universe)
grunt: command not found
james@ubuntu:~/Documents/projects/ad2/lib/jquery-ui$ npm ls
[email protected] /home/james/Documents/projects/ad2/lib/jquery-ui
├─┬ [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ ├─┬ [email protected] 
│ │ ├── [email protected] 
│ │ ├── [email protected] 
│ │ └── [email protected] 
│ ├── [email protected] 
│ ├─┬ [email protected] 
│ │ └─┬ [email protected] 
│ │   └── [email protected] 
│ ├─┬ [email protected] 
│ │ ├── [email protected] 
│ │ └── [email protected] 
│ ├── [email protected] 
│ ├─┬ [email protected] 
│ │ ├── [email protected] 
│ │ └─┬ [email protected] 
│ │   └── [email protected] 
│ ├─┬ [email protected] 
│ │ ├── [email protected] 
│ │ └─┬ [email protected] 
│ │   ├── [email protected] 
│ │   ├── [email protected] 
│ │   └── [email protected] 
│ ├─┬ [email protected] 
│ │ └── [email protected] 
│ ├─┬ [email protected] 
│ │ ├── [email protected] 
│ │ └─┬ [email protected] 
│ │   ├── [email protected] 
│ │   ├─┬ [email protected] 
│ │   │ └── [email protected] 
│ │   └── [email protected] 
│ ├── [email protected] 
│ ├─┬ [email protected] 
│ │ └── [email protected] 
│ ├── [email protected] 
│ ├── [email protected] 
│ └── [email protected] 
├── [email protected] 
├─┬ [email protected] 
│ ├── [email protected] 
│ └── [email protected] 
├── [email protected] 
├── [email protected] 
├─┬ [email protected] 
│ └── [email protected] 
└─┬ [email protected] 
  └── [email protected] 

私は混乱しています、私は何が欠けていますか?

181
AJP

コマンドラインツールは、Gruntの最新バージョン(執筆時点では0.4)には含まれていませんが、個別にインストールする必要があります。

これは、異なるプロジェクトで異なるバージョンのGruntを実行しながら、Niceの簡潔なgruntコマンドを使用して実行できることを意味するため、良いアイデアです。

したがって、まずgrunt cliツールをグローバルにインストールします。

npm install -g grunt-cli

(または場合によってはSudo npm install -g grunt-cli)。

grunt --versionと入力することで動作することを確認できます

これで、プロジェクトにローカルなGruntの現在のバージョンをインストールできます。あなたのプロジェクトの場所から...

npm install grunt --save-dev

save-devスイッチは厳密には必要ではありませんが、package.json devDependenciesセクションで開発専用モジュールとしてgruntをマークするため、良いアイデアです。

404
Tom P

/usr/local/share/npm/bin/$PATHに追加します

26
Sam Figueroa

npm install -g gruntを実行してGruntパッケージをインストールしたが、まだNo command 'grunt' foundまたはgrunt: command not foundと表示されている場合、これをすばやく簡単に実行するには、ノードバイナリを手動で$ PATHにリンクします。

MacOSX/Linuxでは、この行を~/.bash_profileまたは~/.bashrcファイルに追加できます。

PATH=$PATH:/usr/local/Cellar/node/HEAD/bin # Add NPM binaries

おそらく/usr/local/Cellar/node/HEAD/binを、ノードバイナリが見つかったパスで置き換える必要があります。

これが速くて汚いの場合、これを行わなくてもすべてが機能するはずですが、不明な理由でリンクが壊れているようです。 IRCの誰も私にこれが起こった理由を教えてくれなかったので、私はそれを(うなり声で)動作させる独自の方法を見つけました。

PS:これはあなたがうなり声の作品を作るのに役立つはずです、この答えはjquery-ui関連ではありません。

更新02/2013:ご覧ください- @ tom-p's answer これは何が起こっているかをより良く説明しています。トムは、bashrcファイルをハッキングする代わりに実際のソリューションを提供します。両方とも機能するはずですが、最初にgrunt-cliをインストールしてみてください

24
rayfranco

私の場合、1行目の/ usr/local/bin/gruntファイルを変更する必要があります(これを行わないでください):

 #!/usr/bin/env node //remove this line
 #!/usr/bin/env nodejs // and put this line to run with nodejs

編集済み:

問題を回避するために、他の多くのプログラムがまだ「node」コマンドを使用しているため、「node」という名前のリンクを作成しました。

 Sudo ln -s /usr/bin/nodejs /usr/sbin/node
12
Edgard Leal

WIN7では、npmフォルダー(とらえどころのない "grunt"ファイルを含む)へのパスをWindows PATH環境変数に手動で追加する必要がありました。
私の場合、それはC:\Users\mhaagsma\AppData\Roaming\npmでした

11
Marvin

グローバルに何も追加せずに、Windowsでイサキを実行する方法がもう1つあります。これは、%PATH%で何もする必要がない場合です。

gruntとgrunt-cliがインストールされている場合(-gスイッチなし)。次のいずれかによって:

npm install grunt-cli
npm install [email protected]

または、packages.jsonファイルで次のようにすることで:

"devDependencies": {
    "grunt-cli": "^1.2.0",
    "grunt": "^0.4.5",

ローカルインストールからgruntを呼び出すには:

node node_modules\grunt-cli\bin\grunt --version

これは、何らかの理由でPATHを使用したくない、または使用できない、または常に他の何かがそれを台無しにしている人、たとえばビルドエージェントの場合のソリューションです。

編集:grunt-cliがgrunt> 0.3で動作するようにバージョンを追加

11
tomajar

Gruntをインストールする正しい方法は、次のコマンドを実行することです。

npm install grunt -g

(EACCESSエラーメッセージが表示された場合は、上記のコマンドに「Sudo」を追加してください)

-gはnpmにパッケージをグローバルにインストールさせるため、現在のマシンでいつでも使用できます。

Windowsでは、謎の一部はnpmがGrunt.cmdファイルをインストールする場所にあるように見えます。 LinuxボックスでSudo npm install -g grunt-cliを実行する必要がありましたが、Windows 8の作業用ラップトップでは、Gruntが '.npm-global'ディレクトリに配置されました:%USER_HOME%\。npm-globalおよびIそれをパスに追加する必要がありました。

Windowsでの私の手順は次のとおりです。

  • npm install -g grunt-cli

  • grunt.cmdがどこにあったかを把握します(一部の場合は%USER_HOME%\ App_Data\Roamingにあると思います)。

  • Path環境変数に場所を追加しました。新しいcmdプロンプトを開き、gruntコマンドは問題なく実行されました。

0
MattC

時々、npm install package_name -gが動作する必要があります。

0
lowerkey

他の解決策は、私が使用した私の場合、ubuntu bundlerを削除することです:

Sudo apt-get remove Ruby-bundler 

それは私のために働いた。

0
Israel Morales

こんにちは、Macでこの問題が発生しました。

グローバルにインストールされ、グローバルパスのプレフィックス

Sudo npm install grunt -g --prefix=/usr/local

$ which grunt

/usr/local/bin/gruntを出力する必要があります

乾杯

0
Theva