Perintah ekspres tidak ditemukan

138

Untuk beberapa alasan setelah menginstal Express secara global di mesin saya dengan npm install -g expressjika saya cdmasuk ke direktori dan mencoba menjalankan ekspres saya mendapatkan kesalahan berikut:

express: command not found. 

Bahkan jika saya menjalankannya dengan sudosaya masih mendapatkan hasil yang sama. Saya telah mencoba beberapa solusi berbeda untuk masalah ini dan tidak ada yang berhasil. Saya telah menginstal node di homebrewmana beberapa utas di Stack Overflow yang diindikasikan mungkin menjadi masalah jadi saya benar-benar menghapus node dan menginstal ulang melalui penginstal di nodejs.org (Saya sekarang menjalankan v0.10.26) dan masalah masih berlanjut.

Jika saya masuk ke /usr/local/lib/node_modulesExpress saya ada di sana tetapi di dalam / usr / local / bin tidak ada apa-apa tentang Express. Saya tidak yakin apakah itu masalah atau tidak tetapi mengingat ada binari untuk paket node yang diinstal secara global lainnya di direktori itu, saya pikir mungkin ada yang salah di sana.

Ini adalah keluaran tepat yang saya dapatkan ketika saya menginstal:

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)
Tony Barsotti
sumber

Jawaban:

363

Dengan dirilisnya Express 4.0.0 sepertinya perlu Anda lakukan sudo npm install -g express-generator.

PeterVC
sumber
3
Ini berhasil, terima kasih banyak atas bantuan Anda! Aku siap mencabut rambutku tadi malam.
Tony Barsotti
2
sudo tidak diperlukan karena alasan tersebut dan akan tetap berfungsi. stackoverflow.com/questions/4938592/…
StanleyZheng
4
Sial, bahkan dokumentasi resmi tidak menyebutkannya. ;-)
Azat
Bagaimana Anda menemukannya, jika ini tidak ada dalam dokumentasi, bagaimana kita bisa mempelajarinya?
Mulai
1
Dokumen resmi FWIW menyebutkannya [sekarang?] - expressjs.com/starter/generator.html
Steven R. Loomis
34

Anda perlu menjalankan:

npm install -gd express-generator

Express asli dengan cli, sekarang cli dipecah menjadi paket generator ekspres terpisah. Awalnya dibuat oleh proyek ini menjalankan app.js node ekspres, karena httpserver kode relevan di app.js, dan sekarang bagian kode ini ke direktori proyek di bin/wwwbawah ini, app.js hanya mempertahankan mencapai kode logika aplikasi, Anda perlu menjalankan bin/www. Hanya aplikasi yang sangat sederhana dan perubahan versi ketergantungan paket perbaikan.

air mata
sumber
2

Saya mengalami tantangan ini selama beberapa hari. Setelah pencarian mendalam, saya belajar bahwa seseorang harus membaca setiap sumber daya yang tersedia terutama dari sumber induk [dalam hal ini EXPRESSJS.COM]. Berikut ini perbaikan cepat.

Mulai dengan versi 4.0+ Anda tidak perlu menginstal generator-ekspres jika Anda menjalankan Node 8.2+. Jalankan saja

npx express-generator

Generator ekspres akan bekerja seperti yang dijalankan saat Anda menjalankan:express

Untuk detail selengkapnya, lihat Memulai

Selamat membaca dan jam riset.

HilmaStac
sumber
1

Saya baru-baru ini mencoba menginstal generator-ekspres, bagaimanapun itu akan memberi,

$ zsh : command not found : express

Itu setelah saya melakukannya

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

Tapi kemudian, saya melihat log konsol dari perintah npm install

/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

yang memberi petunjuk bahwa eksekusi ekspres ada di folder bin.

Jadi solusinya adalah: Buka ~ / .zshrc atau ~ / .bashrc dan ekspor jalur sebagai berikut:

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

Ini bekerja sekarang.

TheSYNcoder
sumber