Có vẻ như bạn đã cố gắng cài đặt gói npm trên toàn cầu thay vì cục bộ, như man npm install
mô tả:
Đối số -g hoặc --global sẽ khiến npm cài đặt gói trên toàn cầu thay vì cục bộ.
Nói chung, khi bạn đang thiết lập một dự án npm (trong số nhiều dự án khác mà bạn có thể có), không nên cài đặt các gói trên các mô-đun toàn cầu của Node.js (/ usr / local / lib / node_modules), như nhật ký gỡ lỗi của bạn đề nghị.
Thay vì sử dụng -g
, hãy sử dụng --save
, nó sẽ tự động lưu gói dưới dạng phụ thuộc cho package.json
tệp của bạn :
Như thế này:
$ npm install express-generator --save
$ cat package.json
{
"name": "first_app_generator",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "ivanleoncz",
"license": "MIT",
"dependencies": {
"express-generator": "^4.16.0"
}
}
Nhưng như các câu trả lời khác được đề cập, nếu bạn sẽ sử dụng -g
, bạn phải sử dụng sudo
( nếu người dùng của bạn có đặc quyền sudo: see / etc / sudoers ) khi thực hiện npm install express-generator -g
, nhưng thực sự, đó không phải là ý tưởng hay, có thể gây ra sự cố về quyền.
ĐỂ Ý
Có các hướng dẫn để cài đặt express-generator
với -g
tùy chọn, để có express-cli.js
sẵn tập lệnh trên đường dẫn hệ thống, nhưng bạn cũng có thể sử dụng tập lệnh được cài đặt cục bộ, nằm ở node_modules
dự án npm của bạn:
$ ./node_modules/express-generator/bin/express-cli.js --view=pug myapp
Nếu một thông báo như / usr / bin / env: 'node': Không có tệp hoặc thư mục nào như vậy xuất hiện, hãy cài đặt nodejs-legacy
(Debian / Ubuntu)
IMHO, sử dụng -g
(cũng sử dụng sudo
) giống như hic sunt dracones , nếu bạn không chắc chắn về hậu quả.
Để biết thêm thông tin: