Düğüm paketi (Grunt) kurulu ancak mevcut değil


187

Kullanarak bir github jquery-ui kütüphane oluşturmaya çalışıyorum grunt, ama çalıştırdıktan sonra npm installhala benioku dosyasına göre komutu çalıştıramazsınız . Sadece verir 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 

Kafam karıştı, ne eksik lütfen?

Yanıtlar:


412

Komut satırı araçları Grunt'un en son sürümüne dahil değildir (yazma sırasında 0.4), ayrıca bunları yüklemeniz gerekir.

Bu iyi bir fikir çünkü Grunt'un farklı projelerde çalışan farklı sürümlerine sahip olabileceğiniz anlamına geliyor, ancak yine de gruntbunları çalıştırmak için hoş özlü komutu kullanın.

Bu nedenle, ilk önce grunt cli araçlarını global olarak kurun:

npm install -g grunt-cli

(veya muhtemelen sudo npm install -g grunt-cli).

Bunun işe yaradığını yazarak oluşturabilirsiniz grunt --version

Şimdi Grunt'un güncel sürümünü projenize kurabilirsiniz. Yani projenizin konumundan ...

npm install grunt --save-dev

save-devAnahtar kesinlikle gerekli değil ama bir gelişme sadece modül olarak package.json devDependencies bölümünde hırıltı damgasını vuracak çünkü iyi bir fikirdir.


5
Npm install -g grunt-cli
singsuyash

10
sudo kullanarak çalıştırmak zorunda kaldı
Phil Hudson

2
Bu sizin için işe yaramazsa, grunt ve grunt-cli'yu kaldırmayı ve sonra tekrar yapmayı deneyin. Benim için sadece sudoTeşekkür ederim Tom'u kullanırsam çalışır !
Termato

Not: Düğüm kurulumunuzla ilgili olan sudo kullanmak zorundaysanız. İdeal değil, düzeltilebilir. sindresorhus bir yol önerir . NVM (düğüm sürüm yöneticisi) kullanmayı tercih ediyorum
Tom P

1
node not foundsudo ln -s /usr/local/bin/nodejs /usr/local/bin/node
Buradaysanız

26

Ekle /usr/local/share/npm/bin/için senin$PATH


Teşekkürler, bunu .bash_profile dosyasına eklemek sorunumu düzeltmeye yardımcı oldu!
Thilak Rao

2
eklenmesi $HOME/npm/binubuntu 13.10 üzerinde benim için çalıştı.
Eliran Malka

24

Grunt paketini çalıştırarak kurduysanız npm install -g gruntve hala No command 'grunt' foundya da grunt: command not foundbu çalışmayı almanın hızlı ve kirli bir yolu, düğüm ikili dosyalarını $ PATH'ınıza manuel olarak bağlamaktır.

MacOSX / Linux'ta bu satırı dosyanıza ~/.bash_profileveya ~/.bashrcdosyanıza ekleyebilirsiniz .

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

Büyük olasılıkla /usr/local/Cellar/node/HEAD/bindüğüm ikili dosyalarınızın bulunabileceği yolla değiştirmelisiniz .

Bu benim için hızlı ve kirliyse , bunun nedeni her şeyin bunu yapmadan çalışması gerektiğidir, ancak bilinmeyen bir nedenden dolayı bir bağlantı kopmuş gibi görünüyor. IRC'deki hiç kimse bana bunun neden olduğunu söyleyemediğinden, (homurdanıyor) çalışmasını sağlamak için kendi yolumu buldum.

Not: Bu, homurdanan işler yapmanıza yardımcı olmalıdır, bu cevap jquery-ui ile ilgili değildir.

Güncelleme 02/2013 : @ tom-p'nin neler olduğunu daha iyi açıklayan cevabına bir göz atmalısınız . Tom bize bashrc dosyanızı kesmek yerine gerçek bir çözüm sunar: her ikisi de çalışmalı, ancak önce yüklemeyi denemelisinizgrunt-cli .


Açıklamayı sağlayan diğer cevaba bakınız.
Yugal Jindle

Cellar'ın burada ne olduğunu söyleyebilir misiniz? Bu size / kurulumunuza özgü bir şey mi?
Brian C

12

Benim durumumda, ben satır 1 / usr / local / bin / grunt dosyasını değiştirmek gerekir (bunu yapmayın):

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

Düzenlendi:

Sorunlardan kaçınmak için, birçok program hala "düğüm" komutunu kullandığından "düğüm" adıyla bir bağlantı oluşturdum.

 sudo ln -s /usr/bin/nodejs /usr/sbin/node

6
Paketlenmiş dosyaları el ile düzenlemekten kimseyi caydırmak için yapıcı aşağı oy. Sorununuz için ihtiyacınız var apt-get install nodejs-legacy.
Hava

Öneriniz Debian Jessie'nin yepyeni yüklemesinde çalışan en yeni ve tek öneri.
Helzgate

Ok Air, ama OSX kullanıyorum, şöyle bir şey deneyeceğimbrew install nodejs-leacy
Edgard Leal

@Air teşekkürler bu benim sorunumdu. Önceki tüm adımları uyguladıktan sonra homurdanmayı tanıyamadı .
kemicofa hayalet

11

Küresel bir şey eklemeden pencerelerde homurdanma yapmanın bir yolu daha var. Bu,% PATH% ile hiçbir şey yapmanız gerekmediğinde ortaya çıkan bir durumdur.

Eğer homurdanma ve homurdanma kelepçesi yüklüyse (-g anahtarı olmadan). Ya:

npm install grunt-cli
npm install grunt@0.4.5

Veya bunu Packages.json dosyanızda şöyle yaparak:

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

Yerel kurulumunuzdan grunt'u şu şekilde arayabilirsiniz:

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

Bu, bazı nedenlerden dolayı PATH ile oynamak istemeyen veya oynayamayan ya da her zaman dağıtan başka bir şeye sahip olanlar, örneğin bir yapı ajanı için olanlar için bir çözümdür.

Düzenleme: Grunt-cli homurdanma> 0.3 ile çalışırken sürümleri eklendi


Docker kullanan biri bunu faydalı bulabilir.
Daniel Kmak

11

WIN7'de npm klasörünün yolunu (zor 'grunt' dosyasını içeren) Windows PATH ortam değişkenine el ile eklemek zorunda kaldım.
Benim durumumdaC:\Users\mhaagsma\AppData\Roaming\npm


2

Homurdanma kurmanın doğru yolu şu komutu çalıştırmaktır:

npm install grunt -g

(EACCESS hata mesajı alırsanız yukarıdaki komuta "sudo" başlığını ekleyin)

-g npm'nin paketi global olarak kurmasını sağlar, böylece mevcut makinenizde istediğiniz zaman kullanabilirsiniz.


6
Bunu yaparsanız (az önce test ettim), grunthomurdanma paketi herhangi bir komut satırı aracı içermediğinden yine de başarısız olacağını unutmayın. Gerek grunt-cli.
Hava

3
görünüşe göre, hem yerel hem de küresel
Adonis K. Kakoulidis

1
genel yükleme (komut satırı ihtiyaçları için), "yükleme (ne olursa olsun)" türü ihtiyaçları için yerel yükleme. Yani her ikisini de yapmanız gerekiyor. Yardımınız için teşekkürler!
prograhammer

1

Merhaba, Mac'te bu sorunu yaşadım ve yaptığım şey

global olarak yüklendi ve global yolla ön ek oluşturuldu

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

şimdi $ which grunt

dışarı koymak gerekir /usr/local/bin/grunt

Şerefe


0

Bazen npm install package_name -gbunun çalışması için gerekir.


Cevap için teşekkürler. Yapmaya çalıştığım şeyden farklı bir yol buldum.
AJP

@AJP bize sadece yaptığınızı söylemek yerine, nasıl çalıştığını söyler misiniz? Teşekkürler.
rayfranco

@rayfranco Üzgünüm temelde vazgeçerek yuvarlak aldım ... Sanırım jquery-ui kütüphanesini yapmaya çalışıyorduk, bu yüzden indirdik, şimdi gerçekten hatırlayamıyorum ... Üzgünüm bunun yararlı olmadığını biliyorum , lütfen bulduğunuzda çözümü geri gönderin. Görünüşe göre pek çok başka kişi bu sayfaya gelmiş.
AJP

0

Başka bir çözüm kullandığım ubuntu bundler kaldırmaktır:

sudo apt-get remove ruby-bundler 

Bu benim için çalıştı.


0

Windows'ta, gizemin bir kısmı npm'nin Grunt.cmd dosyasını yüklediği yer gibi görünüyor. Linux kutumdayken, Windows 8 çalışma dizüstü bilgisayarımda sudo npm install -g grunt-cli çalıştırmak zorunda kaldım, Grunt '.npm-global' dizinine yerleştirildi:% USER_HOME% \. Npm-global ve ben bunu Yola eklemek zorundaydı.

Yani Windows'ta benim adımlarım:

  • npm install -g grunt-cli

  • heck grunt.cmd'nin nerede olduğunu anlayın (sanırım bazıları için% USER_HOME% \ App_Data \ Roaming içinde)

  • Konumu Path ortam değişkenime ekledim. Yeni bir cmd istemi açıldı ve homurdanma komutu iyi çalıştı.


0

Windows 10'da Bunu Yolunuza ekleyin:

%APPDATA%\npm

Bu klasöre başvuruyor ~/AppData/Roaming/npm

[Zaten koştuğunuzu varsayar npm install -g grunt-cli]

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.