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


187

を使用してgithub jquery-uiライブラリを構築しようとしてgruntいますが、実行npm install後も、readmeファイルに従ってコマンドを実行できません。それは与えるだけ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
jquery-ui@1.9.0pre /home/james/Documents/projects/ad2/lib/jquery-ui
├─┬ grunt@0.3.9 
 ├── async@0.1.18 
 ├── colors@0.6.0-1 
 ├─┬ connect@1.8.7 
  ├── formidable@1.0.9 
  ├── mime@1.2.5 
  └── qs@0.5.0 
 ├── dateformat@1.0.2-1.2.3 
 ├─┬ glob-whatev@0.1.6 
  └─┬ minimatch@0.2.4 
    └── lru-cache@1.0.6 
 ├─┬ gzip-js@0.3.1 
  ├── crc32@0.2.2 
  └── deflate-js@0.2.2 
 ├── hooker@0.2.3 
 ├─┬ jshint@0.5.9 
  ├── argsparser@0.0.6 
  └─┬ minimatch@0.2.4 
    └── lru-cache@1.0.6 
 ├─┬ nodeunit@0.6.4 
  ├── tap-assert@0.0.10 
  └─┬ tap-producer@0.0.1 
    ├── inherits@1.0.0 
    ├── tap-results@0.0.2 
    └── yamlish@0.0.5 
 ├─┬ nopt@1.0.10 
  └── abbrev@1.0.3 
 ├─┬ prompt@0.1.12 
  ├── pkginfo@0.2.3 
  └─┬ winston@0.5.11 
    ├── eyes@0.1.7 
    ├─┬ loggly@0.3.11 
     └── timespan@2.2.0 
    └── stack-trace@0.0.6 
 ├── semver@1.0.13 
 ├─┬ temporary@0.0.2 
  └── package@1.0.0 
 ├── uglify-js@1.0.7 
 ├── underscore@1.2.4 
 └── underscore.string@2.1.1 
├── grunt-compare-size@0.1.4 
├─┬ grunt-css@0.2.0 
 ├── csslint@0.9.8 
 └── sqwish@0.2.0 
├── grunt-html@0.1.1 
├── request@2.9.153 
├─┬ rimraf@2.0.1 
 └── graceful-fs@1.1.8 
└─┬ testswarm@0.2.2 
  └── request@2.9.202 

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

回答:


412

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

これは、さまざまなプロジェクトでさまざまなバージョンのGrunt gruntを実行でき、しかもnice簡潔コマンドを使用してそれらを実行できることを意味するので、これは良い考えです。

したがって、最初に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をマークするため、これは良いアイデアです。


5
npm install -g grunt-cli
singsuyash

10
sudoを使用して実行する必要がありました
Phil Hudson

2
これでうまくいかない場合は、gruntとgrunt-cliをアンインストールしてから、もう一度実行してみてください。sudoありがとうトムを使用した場合にのみ機能します
Termato 2016

注:sudoを使用する必要がある場合は、ノードのセットアップ方法に関係しています。理想的ではありませんが、修正できます。sindresorhusは1つの方法を提案していますNVM(ノードバージョンマネージャー)を使用したい
トムP

1
ここnode not foundにいて、上記のコマンドを実行した後でヒットし、パッケージマネージャーを使用してノードをインストールした場合も、symlinkが必要ですsudo ln -s /usr/local/bin/nodejs /usr/local/bin/node
anon58192932


24

実行してGruntパッケージをインストールnpm install -g gruntしたにもかかわらず、まだまたはと表示されているNo command 'grunt' found場合grunt: command not found、これを機能させるための手っ取り早い方法は、ノードバイナリを$ PATHに手動でリンクすることです。

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

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

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

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

PS:これは、うなり声を上げるのに役立つはずです。この答えは、jquery-uiとは関係ありません。

2013年2月更新何が起こっているのかをよりよく説明する@ tom-pの回答ご覧ください。トムは、bashrcファイルをハッキングする代わりに、実際の解決策を提供してくれます。どちらも機能するはずですが、最初にインストールしてみてくださいgrunt-cli


説明を提供する他の回答を参照してください。
Yugal Jindle 2013

セラーがここにあることを明確にできますか?これはあなた/あなたのインストールに固有のものですか?
ブライアンC

12

私の場合、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

6
パッケージ化されたファイルを手動で編集することをだれもしないようにする建設的な反対投票。あなたの問題のためにあなたはする必要がありますapt-get install nodejs-legacy
エア

あなたの提案は、Debian Jessieの私の新しいインストールで機能した最新かつ唯一の提案の1つです。
Helzgate、2015年

Ok Air、しかし私はOSXを使っています、私は次のようなことを試しますbrew install nodejs-leacy
Edgard Leal

@Airありがとう、それが私の問題でした。前の手順をすべて実行した後、うなり声を認識できませんでした。
kemicofaゴースト

11

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

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

npm install grunt-cli
npm install grunt@0.4.5

または、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で動作するようにバージョンを追加しました


Dockerを使用している人は、それが便利な場合があります。
Daniel Kmak

11

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


2

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

npm install grunt -g

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

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


6
これを行った場合(私はテストしたばかり)、gruntgruntパッケージにはコマンドラインツールが含まれていないため、失敗します。あなたが必要grunt-cliです。
エア

3
明らかに、ローカルとグローバルの両方が必要です
アドニスK.カクリディス

1
グローバルインストール(コマンドラインの必要性)、 "require(whatever)"タイプのニーズのローカルインストール。したがって、両方を行う必要があります。ご協力いただきありがとうございます!
プログラハンマー2015

1

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

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

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

$ which grunt

出すべき /usr/local/bin/grunt

乾杯


0

時にはそれが機能する必要がありますnpm install package_name -g


答えてくれてありがとう。私がやろうとしていたこととは異なる方法を見つけました。
AJP、2012年

@AJPは、それがどのように機能するかを伝えるだけでなく、どのように機能させるかを教えてもらえますか?ありがとう。
rayfranco 2012

@rayfranco申し訳ありませんが、基本的にあきらめました。jquery-uiライブラリを作成しようとしていたので、ダウンロードしたばかりなので、今は覚えていません。 、見つけたら解決策を投稿してください。他の多くの人がこのページにアクセスしたようです(成功していません)。
AJP

0

他の解決策は、私の場合、ubuntuバンドルを削除することです:

sudo apt-get remove ruby-bundler 

それでうまくいきました。


0

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

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

  • npm install -g grunt-cli

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

  • 場所をパス環境変数に追加しました。新しいcmdプロンプトを開き、gruntコマンドが正常に実行されました。


0

Windows 10では、これをパスに追加します。

%APPDATA%\npm

これはフォルダを参照します ~/AppData/Roaming/npm

[すでに実行していると仮定しますnpm install -g grunt-cli]

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