Perintah Gulp tidak ditemukan setelah instalasi

97

Saya menginstal gulp (secara global) dan sepertinya berhasil karena menjalankan kode ini:

├── 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)

Tapi saat saya mengetik gulptertulis-bash: gulp: command not found

Tahu apa yang terjadi?

iluvpinkerton
sumber
4
Untuk mengatasi ini, saya lakukan sudo install gulp -g. yang berhasil
Mr_Green
10
Mr_Green berarti: sudo npm install gulp -g
jasonleonhard

Jawaban:

174

Ternyata npm diinstal di direktori yang salah jadi saya harus mengubah "awalan konfigurasi npm" dengan menjalankan kode ini:

npm config set prefix /usr/local

Kemudian saya menginstal ulang gulp secara global (dengan parameter -g) dan berfungsi dengan baik.

Artikel ini adalah tempat saya menemukan solusinya: http://webbb.be/blog/command-not-found-node-npm

iluvpinkerton
sumber
2
Terima kasih! Memecahkan masalah saya juga :)
pemberontakan
2
Luar biasa. Terima kasih.
Andrew
2
Juga solusinya membantu saya
Sergey Andreev
2
Terima kasih, ini berhasil. Sangat aneh. Saya menginstalnya di macbook 1, berfungsi, macbook 2, tidak berfungsi, jadi saya harus melakukan ini. Gila.
axelvnk
2
Saya bertanya-tanya mengapa StackOverflow tidak menampilkan ini sebagai jawaban pertama! Jelas itu yang benar.
Anand Sainath
58

Tidak yakin mengapa pertanyaannya ditolak, tetapi saya memiliki masalah yang sama dan mengikuti posting blog yang disarankan untuk menyelesaikan masalah. Satu hal yang harus saya tambahkan adalah dalam kasus saya, setelah saya menjalankan:

npm config set prefix /usr/local

Saya sudah konfirmasi npm root -gmenunjuk ke /usr/local/lib/node_modules/npm, tapi untuk menginstal gulpdi /usr/local/lib/node_modules, saya harus menggunakan sudo:

sudo npm install gulp -g

thehme
sumber
Saya sedang mencari solusi ini! TERIMA KASIH! Perintah: npm config set prefix /usr/localPECAHKAN masalah!
north.inhale
21

Jika Anda menggunakan tcsh(yang merupakan shell default saya di Mac OS X), Anda mungkin hanya perlu mengetik rehashke dalam shell setelah penginstalan selesai:

npm install -g gulp

diikuti segera oleh:

rehash

Jika tidak, jika ini adalah pertama kalinya Anda menginstal gulp, shell Anda mungkin tidak mengenali bahwa ada executable baru yang diinstal - jadi Anda perlu memulai shell baru, atau mengetikkan rehashshell saat ini.

(Ini pada dasarnya adalah hal satu kali untuk setiap perintah yang Anda instal secara global.)

Steve Goldberg
sumber
17

Saya menyadari bahwa ini adalah utas lama, tetapi untuk Future-Me, dan anak cucu, saya pikir saya harus menambahkan dua sen saya di sekitar diskusi "menjalankan npm as sudo". Penafian: Saya tidak menggunakan Windows. Langkah-langkah ini hanya terbukti pada mesin non-windows, baik virtual maupun fisik.

Anda dapat menghindari penggunaan sudo dengan mengubah izin ke direktori default npm.


Cara: mengubah izin untuk menjalankan npm tanpa sudo

Langkah 1: Cari tahu di mana direktori default npm.

  • Untuk melakukan ini, buka terminal Anda dan jalankan:
    npm config get prefix

Langkah 2: Lanjutkan, berdasarkan output dari perintah itu:

  • Skenario Satu: Direktori default npm adalah /usr/local
    Untuk sebagian besar pengguna, keluaran Anda akan menunjukkan bahwa direktori default npm adalah / usr / local, dalam hal ini Anda dapat melompat ke langkah 4 untuk memperbarui izin direktori.
  • Skenario Dua: Direktori default npm adalah /usratau /Users/YOURUSERNAME/node_modulesatau /Something/Else/FishyLooking
    Jika Anda menemukan bahwa direktori default npm bukanlah / usr / local, tetapi sesuatu yang tidak dapat Anda jelaskan atau terlihat mencurigakan, Anda harus melanjutkan ke langkah 3 untuk mengubah direktori default untuk npm, atau Anda berisiko mengacaukan izin Anda dalam skala yang jauh lebih besar.

Langkah 3: Ubah direktori default npm:

  • Ada beberapa cara untuk melakukannya, termasuk membuat direktori khusus untuk instalasi global dan kemudian menambahkan direktori itu ke $ PATH Anda, tetapi karena / usr / local mungkin sudah ada di jalur Anda, saya pikir lebih mudah hanya mengubah npm's direktori default untuk itu. Seperti: npm config set prefix /usr/local
    • Untuk info lebih lanjut tentang pendekatan lain yang saya sebutkan, lihat dokumen npm di sini .

Langkah 4: Perbarui izin pada direktori default npm:

  • Setelah Anda memverifikasi bahwa direktori default npm berada di lokasi yang masuk akal, Anda dapat memperbarui izinnya menggunakan perintah:
    sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

Sekarang Anda harus bisa lari npm <whatever>tanpa sudo. Catatan: Anda mungkin perlu memulai ulang terminal Anda agar perubahan ini berlaku.

sgray
sumber
7

Saya memiliki masalah serupa, saya melakukan langkah-langkah berikut dan berhasil. Buka terminal mac dan jalankan perintah,

1.npm config mengatur awalan / usr / local

2. sudo chown -R $ (whoami) $ (npm config dapatkan awalan) / {lib / node_modules, bin, share}

Kedua perintah ini akan mengatur jalur npm dengan benar dan Anda tidak lagi harus menggunakan sudo di npm. Selanjutnya hapus instalan tegukan

  1. npm uninstall teguk

  2. Installl gulp lagi tanpa sudo, npm install gulp -g

Ini harus bekerja !!

Atul Kumar
sumber
4

Saya mengalami masalah ini dengan mendapatkan "perintah tidak ditemukan" setelah menginstal tetapi saya diinstal ke / usr / local seperti yang dijelaskan dalam solusi di atas.

Masalah saya sepertinya disebabkan oleh saya menjalankan instalasi dengan sudo. Saya melakukan hal berikut.

  1. Menghilangkan tegukan lagi dengan sudo
  2. Mengubah pemilik / usr / local / lib / node_modules menjadi pengguna saya
  3. Memasang gulp lagi tanpa sudo. "npm install gulp -g"
Zack Huston
sumber
1
Tampaknya lebih masuk akal bahwa saya tidak perlu menginstal apa pun secara lokal dengan sudo dan mengapa saya harus menggunakan sudo - bagi saya ketika saya mulai menggunakan sudo kemudian semuanya rusak ketika Anda tidak menjalankan baris perintah sebagai sudo - seperti di dev hari ke hari di bawah pengguna. Saya cenderung berpikir cara Anda jauh lebih benar - sudo tidak selalu merupakan jawaban terbaik meskipun tampaknya sudah diperbaiki untuk saat ini.
mendarat
3

Anda perlu melakukan ini npm install --global gulp. Ini berhasil untuk saya dan saya juga punya masalah ini. Itu karena Anda tidak menginstal paket ini secara global.

Sergey Andreev
sumber
3

Jika Anda menggunakan Mac, gunakan hak akses root

sudo npm install gulp-cli --global

Untuk memeriksa apakah sudah terpasang, jalankan

gulp -v

Versi CLI: 2.2.0 (Output)

Versi lokal: Tidak diketahui

Abinet KenoreGetachew
sumber
1

Saya mendapatkan ini bekerja di Win10 menggunakan kombinasi jawaban dari atas dan tempat lain. Posting di sini untuk orang lain dan masa depan saya.

Saya mengikuti instruksi dari sini: https://gulpjs.com/docs/en/getting-started/quick-start tetapi pada langkah terakhir setelah mengetik gulp --version saya mendapat pesan -bash: gulp: perintah tidak ditemukan

Untuk mengatasinya:

  1. Saya menambahkan% AppData% \ npm ke variabel lingkungan Path saya
  2. Menutup semua gitbash (cmd, powershell, dll ...) dan memulai ulang gitbash.
  3. Kemudian gulp --version berhasil

Juga, temukan alasan di bawah ini mengapa tidak menginstal gulp secara global dan cara menghapusnya (meskipun tidak yakin apakah ini disarankan):

apa artinya gulp- "cli"?

Bagaimana cara menghapus Gulp CLI dari NPM secara global?

Tony Lisanti
sumber
0

Dalam kasus saya menambahkan sudo sebelum npm menginstal perintah gulp terpecahkan tidak ditemukan masalah

sudo npm install

Balram Singh
sumber
0

Jika Anda ingin membiarkan awalan Anda utuh, cukup ekspor itu bin dir ke variabel PATH Anda:
export PATH=$HOME/your-path/bin:$PATH
Saya menambahkan baris ini ke $ HOME / .profile saya dan mengambilnya.

Pengaturan awalan untuk /usr/localmembuat Anda menggunakan sudo, jadi saya ingin memilikinya di direktori pengguna saya. Anda dapat memeriksa prefiks Anda dengan npm prefix -g.

Altair
sumber