Tidak ada pemasangan gulp lokal yang ditemukan bahkan setelah memasang npm install -g gulp

88

Saya mencoba menginstal gulp by

npm install -g gulp

Outputnya terlihat seperti ini. (saya telah melewatkan beberapa log)

npm http 304 https://registry.npmjs.org/string_decoder
npm http 304 https://registry.npmjs.org/lodash._htmlescapes
/usr/bin/gulp -> /usr/lib/node_modules/gulp/bin/gulp.js
gulp@3.6.2 /usr/lib/node_modules/gulp
├── tildify@0.2.0
├── pretty-hrtime@0.2.1
├── deprecated@0.0.1
├── archy@0.0.2
├── semver@2.2.1
├── chalk@0.4.0 (has-color@0.1.7, ansi-styles@1.0.0, strip-ansi@0.1.1)
├── orchestrator@0.3.3 (sequencify@0.0.7)
├── liftoff@0.9.8 (extend@1.2.1, minimist@0.0.8, resolve@0.6.3, findup-sync@0.1.3)
├── vinyl-fs@0.1.4 (graceful-fs@2.0.3, map-stream@0.1.0, mkdirp@0.3.5, vinyl@0.2.3, glob-stream@3.1.9, glob-watcher@0.0.6)
└── gulp-util@2.2.14 (lodash._reinterpolate@2.4.1, dateformat@1.0.7-1.2.3, minimist@0.0.8, vinyl@0.2.3, multipipe@0.0.2, through2@0.4.1, lodash.template@2.4.1)

Pada skrip di atas saya bisa melihat baris / usr / bin / gulp -> /usr/lib/node_modules/gulp/bin/gulp.js yang saya kira sedang membuat simulink di folder bin. Jadi saya harus menelan secara global tetapi saya mendapatkan kesalahan ini.

No local gulp install found in /var/www/ksapp

Tahu mengapa saya mendapatkan kesalahan ini.

Terima kasih

harikrish
sumber

Jawaban:

103

Seperti yang ditunjukkan di dokumen , Anda harus menginstalnya secara global (Anda melakukannya) dan menambahkannya ke deps dev proyek Anda (secara lokal):

npm install gulp --save-dev
Hancur Deutz
sumber
1
Apakah ada kemungkinan Gulp untuk tidak menyalin file node ke folder lokal proyek? Setelah Gulp diinstal secara global, perintah ini membuat salinan lokalnya seperti yang saya mengerti.
Vladislav Rastrusny
Intinya adalah bahwa pemasangan lokal menjamin bahwa pembangunan proyek Anda TIDAK akan rusak meskipun pemasangan sistem Anda ditingkatkan (pemasangan gulp global hanya ada di sana untuk menyediakan perintah biner di jalur). Ini adalah situasi yang sama untuk mendengus.
Hancur Deutz
12
Saya juga benci salinan lengkap modul node di setiap folder proyek, jadi saya secara teratur menggunakannpm link gulp --save-dev
PA.
1
Bagus, tapi saya tidak melihat yang npm link gulp --save-devmenghormati --save-devparameter.
Derek Greer
2
@PA, untuk mengulangi komentar di jawaban lain, npm link gulpadalah ide yang buruk.
sfarbota
35

Saya menghadapi masalah yang sama. Selesaikan dengan membuat tautan

npm link gulp
piscript
sumber
8
Seperti yang dinyatakan di komentar lain, ini adalah ide yang buruk. Sistem build seperti gulp, atau grunt, dirancang sedemikian rupa sehingga project tertentu dapat bergantung pada versi spesifik build tertentu (dengan demikian, tetap akan membangun apa pun status atau versi yang diinstal dari sistem global Anda). Mencoba untuk menghubungkan bersama versi global dan lokal dari tegukan menembak diri Anda sendiri di kaki ...
Hancur Deutz
@MangledDeutz Saya tidak tertarik untuk mengikat tegukan pada proyek khusus ini. Saya hanya ingin menggunakannya sebagai alat baris perintah kecil untuk mengotomatiskan beberapa tugas pembangunan. Gulpfile saya tidak akan menjadi bagian dari git repo, dan pada kenyataannya, jika saya mengkloning repo ini di komputer lain, saya mungkin memutuskan untuk tidak menggunakan gulp untuk mengotomatiskan tugas-tugas ini, saya mungkin menggunakan alat yang berbeda. Saya ingin berpura-pura node dan npm tidak ada, dan gulp hanyalah beberapa program kecil di / usr / bin yang mencari gulpfile.js di CWD dan bekerja secara ajaib. Jika hanya itu yang saya inginkan, bukankah jawaban ini masuk akal untuk dilakukan?
Jack M
@JackM itu masih bukan hal yang masuk akal, karena tergantung pada versi apa dari gulp yang diinstal di seluruh sistem, itu mungkin atau mungkin tidak bekerja dengan gulpfile.js itu (dan "secara ajaib" istirahat tanpa alasan) ...
Hancur Deutz
@MangledDeutz Tapi itu benar untuk semua program baris perintah yang menerima file sebagai input.
Jack M
Yaaas! INI! Biarkan pengembang memutuskan kapan versi global sesuai atau tidak !!
Peter Konga-Kamau
-2

Periksa direktori /home/username/.npm: mungkin grup / pemilik file adalah root. Ubah ke nama pengguna:

chown -R username.username /home/username/.npm
István Pató
sumber
-2

Saya baru-baru ini mengalami pesan kesalahan "Tegukan lokal tidak ditemukan". Saya dapat bekerja melewatinya dengan membuat symlink dari direktori node_modules global ke direktori proyek lokal tempat gulpfile.js saya berada.

pengguna3791139
sumber
7
Anda kemudian mengalahkan tujuan dari sistem build yang tersedia secara lokal yang TIDAK rusak saat Anda mengupgrade sistem dasar Anda. Ini tentu saja ide yang buruk dan bertentangan dengan niat penulis ...
Hancur Deutz