ไม่พบคำสั่งด่วน


137

ด้วยเหตุผลบางอย่างหลังจากติดตั้ง Express ทั่วโลกบนเครื่องของฉันด้วยnpm install -g expressถ้าฉันcdลงในไดเรกทอรีและพยายามที่จะเรียกใช้ด่วนฉันได้รับข้อผิดพลาดต่อไปนี้:

express: command not found. 

แม้ว่าฉันจะรันด้วยsudoฉันยังได้รับผลลัพธ์เดียวกัน ฉันได้ลองวิธีแก้ไขปัญหาที่แตกต่างกันหลายอย่างแล้ว แต่ก็ไม่มีอะไรทำงานได้ ฉันติดตั้งโหนดผ่านทางhomebrewซึ่งมีกระทู้บางรายการใน Stack Overflow ที่ระบุว่าอาจเป็นปัญหาดังนั้นฉันจึงถอนการติดตั้งโหนดอย่างสมบูรณ์และติดตั้งใหม่ผ่านทางโปรแกรมติดตั้งบน nodejs.org (ตอนนี้ฉันกำลังเรียกใช้ v0.10.26) และปัญหายังคงอยู่

ถ้าฉันจะเข้าไป /usr/local/lib/node_modules Expressอยู่ในนั้น แต่ภายใน / usr / local / bin ไม่มีอะไรเกี่ยวกับ Express ฉันไม่แน่ใจว่าเป็นปัญหาหรือไม่ แต่การพิจารณามีไบนารีสำหรับแพ็คเกจโหนดที่ติดตั้งทั่วโลกอื่น ๆ ในไดเรกทอรีนั้นฉันคิดว่าอาจมีบางอย่างผิดปกติ

นี่คือผลลัพธ์ที่แน่นอนที่ฉันได้รับเมื่อติดตั้ง:

npm http GET https://registry.npmjs.org/express
npm http 304 https://registry.npmjs.org/express
npm http GET https://registry.npmjs.org/accepts/1.0.0
npm http GET https://registry.npmjs.org/type-is/1.0.0
npm http GET https://registry.npmjs.org/range-parser/1.0.0
npm http GET https://registry.npmjs.org/cookie/0.1.0
npm http GET https://registry.npmjs.org/fresh/0.2.2
npm http GET https://registry.npmjs.org/buffer-crc32/0.2.1
npm http GET https://registry.npmjs.org/send/0.2.0
npm http GET https://registry.npmjs.org/methods/0.1.0
npm http GET https://registry.npmjs.org/cookie-signature/1.0.3
npm http GET https://registry.npmjs.org/utils-merge/1.0.0
npm http GET https://registry.npmjs.org/merge-descriptors/0.0.2
npm http GET https://registry.npmjs.org/escape-html/1.0.1
npm http GET https://registry.npmjs.org/serve-static/1.0.1
npm http GET https://registry.npmjs.org/qs/0.6.6
npm http GET https://registry.npmjs.org/path-to-regexp/0.1.2
npm http GET https://registry.npmjs.org/parseurl/1.0.1
npm http GET https://registry.npmjs.org/debug
npm http 304 https://registry.npmjs.org/cookie/0.1.0
npm http 304 https://registry.npmjs.org/type-is/1.0.0
npm http 304 https://registry.npmjs.org/buffer-crc32/0.2.1
npm http 304 https://registry.npmjs.org/methods/0.1.0
npm http 304 https://registry.npmjs.org/accepts/1.0.0
npm http 304 https://registry.npmjs.org/range-parser/1.0.0
npm http 304 https://registry.npmjs.org/cookie-signature/1.0.3
npm http 304 https://registry.npmjs.org/fresh/0.2.2
npm http 304 https://registry.npmjs.org/serve-static/1.0.1
npm http 304 https://registry.npmjs.org/qs/0.6.6
npm http 304 https://registry.npmjs.org/utils-merge/1.0.0
npm http 304 https://registry.npmjs.org/merge-descriptors/0.0.2
npm http 304 https://registry.npmjs.org/escape-html/1.0.1
npm http 304 https://registry.npmjs.org/path-to-regexp/0.1.2
npm http 304 https://registry.npmjs.org/parseurl/1.0.1
npm http 304 https://registry.npmjs.org/debug
npm http 304 https://registry.npmjs.org/send/0.2.0
npm http GET https://registry.npmjs.org/mime
npm http GET https://registry.npmjs.org/send/0.1.4
npm http GET https://registry.npmjs.org/mime
npm http GET https://registry.npmjs.org/negotiator
npm http 304 https://registry.npmjs.org/mime
npm http 304 https://registry.npmjs.org/mime
npm http 304 https://registry.npmjs.org/send/0.1.4
npm http GET https://registry.npmjs.org/range-parser/0.0.4
npm http GET https://registry.npmjs.org/fresh/0.2.0
npm http 304 https://registry.npmjs.org/negotiator
npm http 304 https://registry.npmjs.org/range-parser/0.0.4
npm http 304 https://registry.npmjs.org/fresh/0.2.0
express@4.0.0 /usr/local/lib/node_modules/express
├── methods@0.1.0
├── parseurl@1.0.1
├── utils-merge@1.0.0
├── merge-descriptors@0.0.2
├── escape-html@1.0.1
├── debug@0.8.0
├── cookie-signature@1.0.3
├── range-parser@1.0.0
├── fresh@0.2.2
├── qs@0.6.6
├── buffer-crc32@0.2.1
├── cookie@0.1.0
├── path-to-regexp@0.1.2
├── type-is@1.0.0 (mime@1.2.11)
├── send@0.2.0 (mime@1.2.11)
├── serve-static@1.0.1 (send@0.1.4)
└── accepts@1.0.0 (negotiator@0.3.0, mime@1.2.11)

คำตอบ:


359

ด้วยการเปิดตัวด่วน 4.0.0 sudo npm install -g express-generatorดูเหมือนว่าคุณต้องทำ


3
สิ่งนี้ได้ผลขอบคุณมากสำหรับความช่วยเหลือของคุณ! ฉันพร้อมที่จะดึงผมออกไปเมื่อคืนนี้
Tony Barsotti

2
sudo ไม่จำเป็นสำหรับเหตุผลดังกล่าวและจะยังคงทำงาน stackoverflow.com/questions/4938592/…
StanleyZheng

4
คนเกียจคร้านไม่ใช่เอกสารทางการกล่าวถึง ;-)
Azat

คุณค้นพบมันได้อย่างไรถ้าสิ่งนี้ไม่อยู่ในเอกสารเราควรเรียนรู้เกี่ยวกับมันอย่างไร
Startec

1
เอกสารอย่างเป็นทางการของ FWIW พูดถึงมัน [ตอนนี้หรือไม่] - expressjs.com/starter/generator.html
Steven R. Loomis

34

คุณต้องเรียกใช้:

npm install -gd express-generator

express ต้นฉบับพร้อม cli ตอนนี้ cli แบ่งออกเป็นแพ็คเกจเครื่องกำเนิดไฟฟ้าด่วนแยกต่างหาก เริ่มแรกที่สร้างโดยโครงการกำลังเรียกใช้ express node app.js เนื่องจาก httpserver รหัสที่เกี่ยวข้องใน app.js และตอนนี้ส่วนหนึ่งของรหัสนี้ไปยังไดเรกทอรีโครงการbin/wwwด้านล่าง app.js เก็บเฉพาะบรรลุรหัสตรรกะของแอปคุณต้องเรียกใช้bin/www. เพียงแค่แอปพลิเคชันที่ง่ายมากและการเปลี่ยนแปลงเวอร์ชันการพึ่งพาแพ็กเกจการปรับปรุง


2

ฉันมีความท้าทายนี้หลายวัน หลังจากการค้นหาอย่างลึกซึ้งฉันได้เรียนรู้ว่าต้องอ่านทรัพยากรที่มีอยู่โดยเฉพาะจากแหล่งแม่ [ในกรณีนี้คือ EXPRESSJS.COM] นี่คือการแก้ไขอย่างรวดเร็ว

เริ่มต้นด้วยรุ่น 4.0+ คุณไม่จำเป็นต้องติดตั้งโปรแกรมสร้างด่วนหากคุณใช้งาน Node 8.2+ เพียงแค่เรียกใช้

npx express-generator

ตัวสร้างด่วนจะทำงานแบบที่มันทำงานเมื่อคุณเรียกใช้:express

สำหรับรายละเอียดเพิ่มเติมดูเริ่มต้นใช้งาน

ชั่วโมงแห่งการอ่านและการวิจัยมีความสุข


1

ฉันได้พยายามติดตั้งเครื่องกำเนิดไฟฟ้าด่วนเมื่อเร็ว ๆ นี้ แต่มันจะให้ออก

$ zsh : command not found : express

มันเป็นหลังจากที่ฉันทำ

$ sudo npm install -g express
$ sudo npm install -g express-generator

แต่แล้วฉันเห็นบันทึกคอนโซลของการติดตั้ง npm commnand

/usr/local/Cellar/node/13.1.0/bin/express -> /usr/local/Cellar/node/13.1.0/lib/node_modules/express-generator/bin/express-cli.js

ซึ่งให้คำใบ้ว่า express ที่สามารถเรียกทำงานได้นั้นอยู่ในโฟลเดอร์ bin

ดังนั้นทางออกคือ: เปิด ~ / .zshrc หรือ ~ / .bashrc และส่งออกเส้นทางดังนี้

export PATH=/usr/local/Cellar/node/13.1.0/bin:$PATH

มันใช้งานได้แล้ว

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