ไม่พบการติดตั้งอึกในเครื่องแม้ว่าจะติดตั้ง npm install -g gulp แล้วก็ตาม


88

ฉันพยายามติดตั้งอึกโดย

npm install -g gulp

ผลลัพธ์น่าจะเป็นแบบนี้ (ฉันได้ข้ามบันทึกบางส่วน)

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)

ในสคริปต์ด้านบนฉันเห็นบรรทัด / usr / bin / gulp -> /usr/lib/node_modules/gulp/bin/gulp.js ซึ่งฉันเดาว่ากำลังสร้าง simulink ในโฟลเดอร์ bin ดังนั้นฉันควรจะอึกใหญ่ทั่วโลก แต่ฉันได้รับข้อผิดพลาดนี้

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

มีความคิดว่าทำไมฉันถึงได้รับข้อผิดพลาดนี้

ขอบคุณ

คำตอบ:


103

ตามที่ระบุไว้ในเอกสารคุณควรติดตั้งทั่วโลก (คุณทำเช่นนั้น) และเพิ่มลงในโครงการ dev deps (ในเครื่อง):

npm install gulp --save-dev

1
มีความเป็นไปได้หรือไม่ที่ Gulp จะไม่คัดลอกไฟล์โหนดไปยังโฟลเดอร์ภายในของโปรเจ็กต์ เมื่อติดตั้ง Gulp ทั่วโลกคำสั่งนี้จะสร้างสำเนาภายในเครื่องตามที่ฉันเข้าใจ
Vladislav Rastrusny

ประเด็นก็คือการติดตั้งภายในเครื่องรับประกันว่าการสร้างโครงการของคุณจะไม่หยุดทำงานแม้ว่าการติดตั้งระบบของคุณจะได้รับการอัพเกรด (การติดตั้ง gulp ส่วนกลางมีไว้เพื่อให้คำสั่งไบนารีในพา ธ ) นี่เป็นสถานการณ์เดียวกันสำหรับฮึดฮัด
Mangled Deutz

12
ฉันเกลียดโมดูลโหนดแบบเต็มในแต่ละโฟลเดอร์โครงการดังนั้นฉันจึงใช้npm link gulp --save-dev
PA

1
ดี แต่ฉันไม่เห็นว่าnpm link gulp --save-devเคารพ--save-devพารามิเตอร์
Derek Greer

2
@PA เพื่อย้ำความคิดเห็นอีกครั้งเกี่ยวกับคำตอบอื่น ๆnpm link gulpเป็นความคิดที่ไม่ดี
sfarbota

35

ฉันประสบปัญหาเดียวกัน ได้รับการแก้ไขโดยการสร้างลิงค์

npm link gulp

8
เช่นเดียวกับที่ระบุไว้ในความคิดเห็นอื่นนี่เป็นความคิดที่ไม่ดี ระบบสร้างเช่น gulp หรือ grunt ได้รับการออกแบบในลักษณะที่โครงการเฉพาะสามารถขึ้นอยู่กับเวอร์ชันเฉพาะของ build เฉพาะ (ดังนั้นจะยังคงสร้างไม่ว่าระบบส่วนกลางของคุณจะอยู่ในสถานะหรือเวอร์ชันที่ติดตั้งไว้ก็ตาม) การพยายามเชื่อมโยงอึกรุ่นทั่วโลกและท้องถิ่นเข้าด้วยกันกำลังยิงตัวเองด้วยเท้า ...
Mangled Deutz

@MangledDeutz ฉันไม่สนใจที่จะผูกอึกกับโครงการเฉพาะนี้ ฉันแค่ต้องการใช้มันเป็นเครื่องมือบรรทัดคำสั่งเล็ก ๆ สำหรับการสร้างงานบางอย่างโดยอัตโนมัติ gulpfile ของฉันจะไม่เป็นส่วนหนึ่งของ git repo และในความเป็นจริงถ้าฉันโคลน repo นี้บนคอมพิวเตอร์เครื่องอื่นฉันอาจตัดสินใจที่จะไม่ใช้อึกเพื่อทำงานเหล่านี้โดยอัตโนมัติฉันอาจใช้เครื่องมืออื่น ฉันต้องการแกล้งทำเป็น node และไม่มี npm และ gulp เป็นเพียงโปรแกรมเล็ก ๆ ใน / usr / bin ที่มองหา gulpfile.js ใน CWD และใช้งานได้อย่างน่าอัศจรรย์ ถ้านั่นคือทั้งหมดที่ฉันต้องการคำตอบนี้ไม่ใช่สิ่งที่สมเหตุสมผลหรือไม่?
Jack M

@JackM มันยังไม่ใช่สิ่งที่สมเหตุสมผลเพราะขึ้นอยู่กับว่ามีการติดตั้งอึกรุ่นใดทั้งระบบอาจใช้งานได้กับ gulpfile.js นั้นหรือไม่ก็ได้ (และแตก "อย่างน่าอัศจรรย์" โดยไม่มีเหตุผล) ...
Mangled Deutz

@MangledDeutz แต่นั่นเป็นความจริงสำหรับโปรแกรมบรรทัดคำสั่งใด ๆ ที่ยอมรับไฟล์เป็นอินพุต
Jack M

ยัยแอส! นี้! ปล่อยให้ผู้พัฒนาตัดสินใจเองว่าเวอร์ชันสากลเหมาะสมหรือไม่ !!
Peter Kionga-Kamau


-2

ฉันเพิ่งพบข้อความแสดงข้อผิดพลาด "Local gulp not found" ฉันสามารถผ่านมันไปได้โดยการสร้าง symlink จากไดเร็กทอรี global node_modules ไปยังไดเร็กทอรีโปรเจ็กต์ภายในที่ซึ่ง gulpfile.js ของฉันตั้งอยู่


7
จากนั้นคุณกำลังเอาชนะจุดประสงค์ของระบบบิลด์ที่มีอยู่ในเครื่องซึ่งจะไม่พังเมื่อคุณอัพเกรดระบบฐานของคุณ นี่เป็นความคิดที่ไม่ดีอย่างแน่นอนและสวนทางกับความตั้งใจของผู้เขียน ...
Mangled Deutz
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.