Không tìm thấy lệnh Express


137

Vì một số lý do sau khi cài đặt Express trên toàn cầu trên máy của tôi npm install -g expressnếu tôi cdvào một thư mục và thử chạy express tôi gặp lỗi sau:

express: command not found. 

Ngay cả khi tôi chạy nó với sudotôi vẫn nhận được cùng một đầu ra. Tôi đã thử nhiều giải pháp khác nhau cho vấn đề này và không có gì hiệu quả. Tôi đã cài đặt nút thông qua homebrewđó một số luồng trên Stack Overflow chỉ ra có thể là một vấn đề vì vậy tôi đã gỡ cài đặt hoàn toàn nút và cài đặt lại thông qua trình cài đặt trên nodejs.org (hiện tôi đang chạy v0.10.26) và sự cố vẫn còn.

Nếu tôi đi vào /usr/local/lib/node_modulesExpress của tôi thì ở đó nhưng trong / usr / local / bin thì không có gì liên quan đến Express. Tôi không chắc đó có phải là vấn đề hay không nhưng xem xét có nhị phân cho các gói nút được cài đặt toàn cầu khác trong thư mục đó Tôi nghĩ có thể có gì đó không đúng ở đó.

Đây là đầu ra chính xác tôi nhận được khi cài đặt:

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)

Câu trả lời:


359

Với việc phát hành Express 4.0.0, có vẻ như bạn cần phải làm sudo npm install -g express-generator.


3
Điều này làm việc cảm ơn rất nhiều vì sự giúp đỡ của bạn! Tôi đã sẵn sàng để nhổ tóc của tôi trong đêm qua.
Tony Barsotti

2
sudo là không cần thiết cho lý do được đề cập và vẫn sẽ làm việc. stackoverflow.com/questions/4938592/
Mạnh

4
Bummer, thậm chí không có tài liệu chính thức đề cập đến nó. ;-)
Azat

Làm thế nào bạn tìm thấy nó, nếu điều này không có trong tài liệu, làm thế nào chúng ta phải tìm hiểu về nó?
Bắt đầu

1
Các tài liệu chính thức của FWIW có đề cập đến nó [ngay bây giờ không?] - expressjs.com/starter/generator.html
Steven R. Loomis

34

Bạn cần chạy:

npm install -gd express-generator

Express ban đầu với cli, bây giờ cli tách thành gói express-express riêng biệt. Ban đầu được tạo bởi dự án đang chạy nút app.js, vì mã có liên quan httpserver trong app.js và bây giờ phần mã này vào thư mục dự án bin/wwwbên dưới, app.js chỉ giữ lại mã logic ứng dụng, bạn cần chạy mã bin/www. Chỉ cần một ứng dụng rất đơn giản và phiên bản phụ thuộc gói tinh chỉnh thay đổi.


2

Tôi đã có thử thách này trong một số ngày. Sau khi tìm kiếm sâu, tôi biết rằng người ta phải đọc mọi tài nguyên có sẵn, đặc biệt là từ nguồn gốc [trong trường hợp này là EXPRESSJS.COM]. Đây là một sửa chữa nhanh chóng.

Bắt đầu với phiên bản 4.0+, bạn không nhất thiết phải cài đặt trình tạo nhanh nếu bạn đang chạy Node 8.2+. Đơn giản chỉ cần chạy

npx express-generator

Trình tạo tốc độ sẽ chạy theo cách nó chạy khi bạn chạy:express

Để biết thêm chi tiết, xem Bắt đầu

Chúc bạn đọc và nghiên cứu giờ.


1

Gần đây tôi đã cố gắng cài đặt trình tạo nhanh, tuy nhiên nó sẽ cho ra

$ zsh : command not found : express

Đó là sau khi tôi đã làm

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

Nhưng sau đó, tôi đã thấy nhật ký giao diện điều khiển của commnand cài đặt npm

/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

trong đó đưa ra một gợi ý rằng biểu thức thực thi nằm trong thư mục bin.

Vì vậy, giải pháp là: Mở lên ~ / .zshrc hoặc ~ / .bashrc và xuất đường dẫn như sau:

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

Nó hoạt dộng bây giờ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.