189

を使用してgithub jquery-ui ライブラリを構築しようとしていますgruntが、実行後もreadme ファイルnpm installに従ってコマンドを実行できません。それはただ与える: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 

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

4

13 に答える 13

417

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

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

したがって、最初にgruntcliツールをグローバルにインストールします。

npm install -g grunt-cli

(またはおそらくsudo npm install -g grunt-cli)。

次のように入力することで、それが機能していることを確認できますgrunt --version

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

npm install grunt --save-dev

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

于 2013-02-19T09:09:51.893 に答える
26

/usr/local/share/npm/bin/あなたに追加$PATH

于 2012-10-08T16:50:49.813 に答える
24

実行して Grunt パッケージをインストールしてnpm install -g gruntも、まだNo command 'grunt' foundorと表示されている場合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 の回答をご覧ください。Tom は、bashrc ファイルをハッキングする代わりに、本当の解決策を教えてくれます。どちらも機能するはずですが、最初にインストールを試す必要grunt-cliがあります。

于 2012-08-15T18:06:16.333 に答える
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
于 2014-04-01T21:35:20.380 に答える
12

グローバルに何も追加せずに、Windows で 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 で動作するため、バージョンを追加しました

于 2016-08-19T19:22:14.170 に答える
11

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

于 2014-07-30T15:55:20.937 に答える
4

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

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

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

$ which grunt

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

乾杯

于 2019-08-06T08:41:12.827 に答える
2

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

npm install grunt -g

(EACCESS エラー メッセージが表示される場合は、上記のコマンドの先頭に「sudo」を追加します)

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

于 2012-09-12T08:35:37.277 に答える
0

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

したがって、Windowsでの私の手順は次のとおりです。

  • npm install -g grunt-cli

  • grunt.cmd がどこにあったかを調べます (%USER_HOME%\App_Data\Roaming にあると思います)。

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

于 2016-03-12T17:41:52.783 に答える
0

時々npm install package_name -g、それが機能するために必要です。

于 2012-05-19T17:27:10.280 に答える
0

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

sudo apt-get remove ruby-bundler 

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

于 2015-04-15T21:19:44.367 に答える