Sepertinya Anda mencoba menginstal paket npm secara global daripada lokal, seperti yang man npm install
dijelaskan:
The -g atau --global argumen akan menyebabkan NPM untuk menginstal paket tersebut secara global bukan lokal.
Secara umum, ketika Anda sedang menyiapkan proyek npm (di antara banyak proyek lain yang bisa Anda miliki), itu bukan ide yang baik untuk menginstal paket pada modul global Node.js (/ usr / local / lib / node_modules), karena log debug Anda disarankan.
Alih-alih menggunakan -g
, gunakan --save
, yang secara otomatis akan menyimpan paket sebagai ketergantungan untuk package.json
file Anda :
Seperti ini:
$ 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"
}
}
Tetapi seperti jawaban lain yang disebutkan, jika Anda akan menggunakan -g
, Anda harus menggunakan sudo
( jika pengguna Anda memiliki hak sudo: lihat / etc / sudoers ) ketika melakukan npm install express-generator -g
, tetapi memang, itu bukan ide yang baik, mungkin menyebabkan masalah izin.
MEMPERHATIKAN
Ada petunjuk untuk menginstal express-generator
dengan -g
opsi, agar skrip express-cli.js
tersedia di jalur sistem, tetapi Anda dapat menggunakan skrip yang diinstal secara lokal, yang terletak di node_modules
if jika proyek npm Anda:
$ ./node_modules/express-generator/bin/express-cli.js --view=pug myapp
Jika pesan seperti / usr / bin / env: 'node': Tidak ada file atau direktori yang muncul, instal nodejs-legacy
(Debian / Ubuntu)
IMHO, menggunakan -g
(juga menggunakan sudo
) seperti dracone , jika Anda tidak yakin akan konsekuensinya.
Untuk informasi lebih lanjut: