ไม่พบคำสั่ง bower


158

ฉันพยายามติดตั้ง bower twitter บน Mac ของฉันและฉันใช้

npm install bower -g

แล้วฉันพยายามและการส่งออกเป็นbower --help bower command not foundทำไมถึงเป็นอย่างนั้น?


2
เอาท์พุทจากnpm installอะไร? มันล้มเหลวเหรอ? มันติดตั้งอยู่ในพื้นที่ที่ไม่ได้อยู่ในสถานที่ของคุณPATHหรือ
jches


คำตอบ:


365

เช่นเดียวกับในคำถามนี้ ( NPM คำนำหน้าเส้นทางทั่วโลก ) npm prefixทั้งหมดที่คุณต้องการก็คือการตั้งค่าที่เหมาะสม

ยูนิกซ์:

$ npm config set prefix /usr/local
$ npm install -g bower

$ which bower
>> /usr/local/bin/bower

Windows ans NVM:

$ npm config set prefix /c/Users/xxxxxxx/AppData/Roaming/nvm/v8.9.2
$ npm install -g bower

จากนั้นควรจะอยู่เพียงแค่ในของคุณbower$PATH


1
ฉันต้องการเพิ่มว่านี่ไม่ใช่คำตอบที่ถูกต้องที่สุดหากคุณทำงานกับหลายโครงการ ควรติดตั้ง Bower ในnode_modulesท้องถิ่นจากpackage.jsonและไม่ใช่ทั่วโลกเนื่องจากโครงการต่าง ๆ สามารถใช้เวอร์ชันต่าง ๆ ได้ (นั่นคือจุดรวมnpm) ปัญหาที่แท้จริงคือระบบไม่สามารถค้นหาไฟล์ปฏิบัติการในเครื่อง
Bruno Finger

@BrunoFinger: เมื่อติดตั้ง bower ไปยังขอบเขตทั่วโลกคำตอบนั้นไม่ได้แก้ปัญหา อย่างไรก็ตามการใช้แพคเกจโหนดท้องถิ่นอาจเป็นวิธีที่ดีกว่าในการจัดการกับเครื่องมือเฉพาะโครงการ
Petr Joachim

ฉันคิดว่าถ้าคำนำหน้า npm ถูกตั้งค่าเป็น / usr / local การติดตั้ง npm -g จะล้มเหลวโดยไม่มี sudo
imafish

เราไม่แนะนำให้ใช้ Bower สำหรับโครงการใหม่ โปรดพิจารณาเส้นด้ายและ Webpack หรือพัสดุ
Daniel

60

ฉันเกือบจะแน่ใจว่าคุณติดตั้งไม่ถูกต้อง เนื่องจากคุณพยายามติดตั้งทั่วโลกคุณจะต้องเรียกใช้งานด้วย sudo:

sudo npm install -g bower

3
นั่นคือวิธีที่ต้องติดตั้ง bower มิฉะนั้นจะติดตั้งในโฟลเดอร์ที่คุณเรียกใช้งานคำสั่ง -g หมายถึงทั่วโลกและมันยังสร้างการเชื่อมโยงที่จำเป็นสำหรับโมดูลที่สามารถดำเนินการตามคำสั่งของระบบ, bower, grunt-cli, แม้ npm เป็นตัวอย่างที่ชัดเจนของเรื่องนี้
Erick Ruiz de Chavez

อย่าติดตั้งด้วย sudo! เพียงใช้ชงหมอและทำการแก้ไขที่ชงหมอแนะนำและจากนั้นคุณไม่จำเป็นต้องใช้ sudo!
djangofan

4

นี่กลับกลายเป็นว่าไม่ใช่ปัญหาที่ร่มรื่นแม้ว่ามันจะปรากฏขึ้นสำหรับฉันด้วยความกลัว

ดูเหมือนว่าจะเป็นปัญหาที่โหนด หากไฟล์อยู่ในพา ธ แต่มี setuid / setgid bit set ซึ่งจะหาไม่พบ

นี่คือไฟล์ที่มีการตั้งค่าบิต: (unix 'ซึ่งจะค้นหาได้โดยไม่มีปัญหา)

ls -al / usr / local / bin -rwxrwsr-- 110 root nmt 5535636 Jul 17 2012 git

นี่เป็นความพยายามของโหนดซึ่ง:

> which.sync('git')
Error: not found: git

ฉันเปลี่ยนการอนุญาต (chomd 755 git) ตอนนี้โหนดซึ่งสามารถค้นหาได้

> which.sync('git')
'/usr/local/bin/git'

หวังว่านี่จะช่วยได้


3

ฉันใช้ตัวจัดการเวอร์ชันโหนด ฉันได้รับข้อความแสดงข้อผิดพลาดนี้เนื่องจากฉันเปลี่ยนไปใช้โหนดรุ่นอื่น เมื่อฉันเปลี่ยนกลับไปเป็นเวอร์ชันของโหนดที่ฉันติดตั้ง bower ข้อผิดพลาดนี้ก็หายไป ในกรณีของฉันคำสั่งคือnvm use stable


3

หรือคุณสามารถใช้npxซึ่งมาพร้อมกับ npm> 5.6

npx bower install


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