ไม่พบคำสั่ง Gulp หลังจากติดตั้ง


97

ฉันติดตั้งอึก (ทั่วโลก) และดูเหมือนว่าจะใช้งานได้เพราะมันรันโค้ดนี้:

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

แต่พอพิมพ์gulpก็บอกว่า-bash: gulp: command not found

มีความคิดเกิดอะไรขึ้น?


4
sudo install gulp -gเพื่อแก้ปัญหานี้ที่ผมทำ ที่ใช้งานได้
Mr_Green

10
Mr_Green หมายถึง: sudo npm install gulp -g
jasonleonhard

คำตอบ:


174

ปรากฎว่ามีการติดตั้ง npm ในไดเร็กทอรีที่ไม่ถูกต้องดังนั้นฉันจึงต้องเปลี่ยน "npm config prefix" โดยเรียกใช้โค้ดนี้

npm config set prefix /usr/local

จากนั้นฉันติดตั้งอึกใหม่ทั่วโลก (ด้วยพารามิเตอร์ -g) และทำงานได้อย่างถูกต้อง

บทความนี้เป็นที่ที่ฉันพบวิธีแก้ปัญหา: http://webbb.be/blog/command-not-found-node-npm


2
ขอบคุณ! แก้ไขปัญหาของฉันด้วย :)
กบฏ

2
น่าอัศจรรย์. ขอบคุณ.
Andrew

2
นอกจากนี้วิธีแก้ปัญหายังช่วยฉัน
Sergey Andreev

2
ขอบคุณมันได้ผล แปลกมาก ฉันติดตั้งบน macbook 1 มันใช้งานได้ macbook 2 ไม่ทำงานดังนั้นฉันต้องทำสิ่งนี้ บ้า.
axelvnk

2
ฉันสงสัยว่าทำไม StackOverflow ไม่แสดงสิ่งนี้เป็นคำตอบแรก! เห็นได้ชัดว่ามันถูกต้อง
Anand Sainath

59

ไม่แน่ใจว่าเหตุใดคำถามจึงถูกโหวตลดลง แต่ฉันมีปัญหาเดียวกันและทำตามบล็อกโพสต์ที่แนะนำให้แก้ปัญหา สิ่งหนึ่งที่ฉันควรเพิ่มคือในกรณีของฉันเมื่อฉันวิ่ง:

npm config set prefix /usr/local

ผมยืนยันnpm root -gได้รับการชี้ไป/usr/local/lib/node_modules/npmแต่เพื่อติดตั้งgulpใน/usr/local/lib/node_modulesผมต้องใช้sudo:

sudo npm install gulp -g


ฉันกำลังค้นหาวิธีแก้ปัญหานี้! ขอบคุณ! คำสั่ง: npm config set prefix /usr/localแก้ไขปัญหาแล้ว!
north.inhale

21

หากคุณใช้tcsh(ซึ่งเป็นเชลล์เริ่มต้นของฉันบน Mac OS X) คุณอาจต้องพิมพ์rehashลงในเชลล์หลังจากการติดตั้งเสร็จสิ้น:

npm install -g gulp

ตามด้วย:

rehash

มิฉะนั้นหากนี่เป็นครั้งแรกที่คุณติดตั้งgulpเชลล์ของคุณอาจไม่ทราบว่ามีการติดตั้งปฏิบัติการใหม่ดังนั้นคุณต้องเริ่มเชลล์ใหม่หรือพิมพ์rehashเชลล์ปัจจุบัน

(นี่เป็นเพียงครั้งเดียวสำหรับแต่ละคำสั่งที่คุณติดตั้งทั่วโลก)


17

ฉันรู้ว่านี่เป็นกระทู้เก่า แต่สำหรับ Future-Me และคนรุ่นหลังฉันคิดว่าฉันควรเพิ่มสองเซ็นต์รอบ ๆ การสนทนา "running npm as sudo" Disclaimer: ฉันไม่ได้ใช้ Windows ขั้นตอนเหล่านี้ได้รับการพิสูจน์แล้วบนเครื่องที่ไม่ใช่ Windows เท่านั้นทั้งแบบเสมือนและจริง

คุณสามารถหลีกเลี่ยงความจำเป็นในการใช้ sudo ได้โดยเปลี่ยนการอนุญาตเป็นไดเรกทอรีเริ่มต้นของ npm


วิธีการ: เปลี่ยนสิทธิ์เพื่อเรียกใช้ npm โดยไม่ต้อง sudo

ขั้นตอนที่ 1: ค้นหาว่าไดเร็กทอรีเริ่มต้นของ npm อยู่ที่ไหน

  • ในการดำเนินการนี้ให้เปิดเทอร์มินัลของคุณและเรียกใช้:
    npm config get prefix

ขั้นตอนที่ 2: ดำเนินการตามผลลัพธ์ของคำสั่งนั้น:

  • สถานการณ์ที่หนึ่ง:ไดเร็กทอรีเริ่มต้นของ npm คือ/usr/local
    สำหรับผู้ใช้ส่วนใหญ่เอาต์พุตของคุณจะแสดงว่าไดเร็กทอรีเริ่มต้นของ npm คือ / usr / local ซึ่งในกรณีนี้คุณสามารถข้ามไปยังขั้นตอนที่ 4 เพื่ออัปเดตสิทธิ์สำหรับไดเร็กทอรี
  • สถานการณ์ที่สอง:ไดเร็กทอรีเริ่มต้นของ npm คือ/usrหรือ/Users/YOURUSERNAME/node_modulesหรือ/Something/Else/FishyLooking
    หากคุณพบว่าไดเร็กทอรีเริ่มต้นของ npm ไม่ใช่ / usr / local แต่เป็นสิ่งที่คุณไม่สามารถอธิบายได้หรือดูคาวคุณควรไปที่ขั้นตอนที่ 3 เพื่อเปลี่ยนไดเร็กทอรีเริ่มต้นสำหรับ npm หรือคุณเสี่ยงที่จะทำให้สิทธิ์ของคุณเสียหายในระดับที่ใหญ่กว่ามาก

ขั้นตอนที่ 3: เปลี่ยนไดเร็กทอรีเริ่มต้นของ npm:

  • มีสองวิธีในการดำเนินการนี้รวมถึงการสร้างไดเร็กทอรีเฉพาะสำหรับการติดตั้งทั่วโลกจากนั้นเพิ่มไดเร็กทอรีนั้นใน $ PATH ของคุณ แต่เนื่องจาก / usr / local อาจอยู่ในเส้นทางของคุณแล้วฉันคิดว่ามันง่ายกว่าที่จะเปลี่ยน npm ไดเร็กทอรีเริ่มต้นไปที่ ชอบมาก: npm config set prefix /usr/local
    • สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการอื่น ๆ ที่ผมกล่าวถึงดูเอกสาร NPM ที่นี่

ขั้นตอนที่ 4: อัปเดตสิทธิ์ในไดเร็กทอรีเริ่มต้นของ npm:

  • เมื่อคุณตรวจสอบแล้วว่าไดเรกทอรีเริ่มต้นของ npm อยู่ในตำแหน่งที่เหมาะสมคุณสามารถอัปเดตการอนุญาตโดยใช้คำสั่ง:
    sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

ตอนนี้คุณควรจะสามารถทำงานได้โดยไม่ต้องnpm <whatever> หมายเหตุ: คุณอาจต้องรีสตาร์ทเทอร์มินัลเพื่อให้การเปลี่ยนแปลงเหล่านี้มีผลsudo


7

ฉันมีปัญหาที่คล้ายกันฉันทำตามขั้นตอนต่อไปนี้และมันได้ผลไปที่เทอร์มินัล mac และดำเนินการคำสั่ง

1.npm config ชุดคำนำหน้า / usr / local

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

คำสั่งทั้งสองนี้จะกำหนดเส้นทาง npm ให้ถูกต้องและคุณไม่ต้องใช้ sudo ใน npm อีกต่อไป ถัดไปถอนการติดตั้งอึก

  1. npm ถอนการติดตั้งอึก

  2. ติดตั้งอึกอีกครั้งโดยไม่ใช้ sudo, npm install gulp -g

น่าจะเวิร์ค !!


4

ฉันมีปัญหากับการรับ "command not found" หลังการติดตั้ง แต่ได้ติดตั้งลงใน / usr / local ตามที่อธิบายไว้ในโซลูชันข้างต้น

ปัญหาของฉันดูเหมือนจะเกิดจากฉันเรียกใช้การติดตั้งด้วย sudo ฉันทำสิ่งต่อไปนี้

  1. ถอดอึกอีกครั้งด้วย sudo
  2. การเปลี่ยนเจ้าของ / usr / local / lib / node_modules เป็นผู้ใช้ของฉัน
  3. ติดตั้งอึกอีกครั้งโดยไม่ใช้ sudo "npm ติดตั้งอึก -g"

1
ดูเหมือนจะสมเหตุสมผลมากขึ้นที่ฉันไม่จำเป็นต้องติดตั้งอะไรในเครื่องด้วย sudo และทำไมฉันจึงต้องใช้ sudo - สำหรับฉันเมื่อฉันเริ่มใช้ sudo แล้วสิ่งต่างๆจะพังเมื่อคุณไม่ได้เรียกใช้บรรทัดคำสั่งเป็น sudo - เหมือนใน วันต่อวัน dev ภายใต้ผู้ใช้ ฉันมักจะคิดว่าวิธีของคุณถูกต้องกว่ามาก - sudo ไม่ใช่คำตอบที่ดีที่สุดเสมอไปแม้ว่าดูเหมือนว่าจะแก้ไขได้ในขณะนี้
ลงจอด

3

npm install --global gulpคุณจำเป็นต้องทำเช่นนี้ มันใช้ได้กับฉันและฉันก็มีปัญหานี้ด้วย เนื่องจากคุณไม่ได้ติดตั้งแพ็คเกจนี้ทั่วโลก


3

หากคุณใช้ Mac ให้ใช้สิทธิ์รูท

sudo npm install gulp-cli --global

เพื่อตรวจสอบว่ามีการติดตั้งหรือไม่

gulp -v

เวอร์ชัน CLI: 2.2.0 (เอาต์พุต)

เวอร์ชันท้องถิ่น: ไม่ทราบ


1

ฉันทำให้สิ่งนี้ทำงานบน Win10 โดยใช้การรวมกันของคำตอบจากด้านบนและที่อื่น ๆ โพสต์ที่นี่เพื่อคนอื่นและฉันในอนาคต

ฉันทำตามคำแนะนำจากที่นี่: https://gulpjs.com/docs/en/getting-started/quick-startแต่ในขั้นตอนสุดท้ายหลังจากพิมพ์ gulp --version ฉันได้รับข้อความ -bash: gulp: command not found

วิธีแก้ไข:

  1. ฉันเพิ่ม% AppData% \ npm ให้กับตัวแปรสภาพแวดล้อมเส้นทางของฉัน
  2. ปิด gitbash ทั้งหมด (cmd, powershell, ฯลฯ ... ) แล้วรีสตาร์ท gitbash
  3. จากนั้นอึก - เวอร์ชันก็ทำงาน

นอกจากนี้พบเหตุผลด้านล่างว่าทำไมไม่ติดตั้งอึกทั่วโลกและวิธีลบ (ไม่แน่ใจว่าแนะนำให้ทำเช่นนี้หรือไม่):

gulp- "cli" ย่อมาจากอะไร?

จะถอนการติดตั้ง Gulp CLI จาก NPM global ได้อย่างไร?



0

หากคุณต้องการปล่อยให้คำนำหน้าของคุณเหมือนเดิมเพียงแค่ส่งออก bin dir ไปยังตัวแปร PATH ของคุณ:
export PATH=$HOME/your-path/bin:$PATH
ฉันเพิ่มบรรทัดนี้ใน $ HOME / .profile ของฉันและหาแหล่งที่มา

การตั้งค่าคำนำหน้าเพื่อให้/usr/localคุณใช้sudoดังนั้นฉันต้องการให้มีในผู้ใช้ คุณสามารถตรวจสอบคำนำหน้าของคุณด้วยnpm prefix -g.

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