ดูเหมือนว่าคุณพยายามติดตั้งแพคเกจ npm ทั่วโลกมากกว่าในเครื่องตามman npm install
คำอธิบาย:
-g หรือ --globalอาร์กิวเมนต์จะทำให้ NPM ในการติดตั้งแพคเกจทั่วโลกมากกว่าในประเทศ
โดยทั่วไปเมื่อคุณตั้งค่าโปรเจ็กต์ npm (ระหว่างที่คุณมี) คุณไม่ควรติดตั้งแพ็กเกจบนโมดูลโกลบอลของ Node.js (/ usr / local / lib / node_modules) เป็นบันทึกการดีบักของคุณ ข้อเสนอแนะ
แทนที่จะใช้-g
ให้ใช้--save
ซึ่งจะบันทึกแพ็กเกจโดยอัตโนมัติเป็นการอ้างอิงสำหรับpackage.json
ไฟล์ของคุณ:
แบบนี้:
$ 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"
}
}
แต่ตามคำตอบอื่น ๆ ที่กล่าวถึงถ้าคุณจะใช้-g
คุณต้องใช้sudo
( หากผู้ใช้ของคุณมีสิทธิ์ sudo: ดู / etc / sudoers ) เมื่อดำเนินการnpm install express-generator -g
แต่ที่จริงแล้วมันไม่ใช่ความคิดที่ดี
ข้อสังเกต
มีคำแนะนำสำหรับการติดตั้งexpress-generator
พร้อม-g
ตัวเลือกเพื่อให้สคริปต์express-cli.js
พร้อมใช้งานบนเส้นทางของระบบ แต่คุณสามารถใช้สคริปต์ที่ติดตั้งในเครื่องได้เช่นกันโดยอยู่ที่node_modules
โครงการ if npm ของคุณ:
$ ./node_modules/express-generator/bin/express-cli.js --view=pug myapp
หากข้อความเช่น/ usr / bin / env: 'node': ไม่มีไฟล์หรือไดเรกทอรีดังกล่าวปรากฏขึ้นให้ติดตั้งnodejs-legacy
(Debian / Ubuntu)
IMHO การใช้-g
(การใช้sudo
) ก็เหมือนhic sunt draconesหากคุณไม่แน่ใจในผลที่ตามมา
สำหรับข้อมูลเพิ่มเติม: