Il semble que vous ayez essayé d'installer un package npm globalement plutôt que localement, comme man npm install
décrit ci - dessous:
L' argument -g ou --global obligera npm à installer le package globalement plutôt que localement.
Généralement, lorsque vous configurez un projet npm (parmi beaucoup d'autres que vous pourriez avoir), ce n'est pas une bonne idée d'installer des packages sur les modules globaux Node.js (/ usr / local / lib / node_modules), comme votre journal de débogage. suggéré.
Au lieu d'utiliser -g
, utilisez --save
, qui enregistrera automatiquement le package en tant que dépendance pour votre package.json
fichier:
Comme ça:
$ 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"
}
}
Mais comme les autres réponses mentionnées, si vous allez utiliser -g
, vous devez utiliser sudo
( si votre utilisateur dispose des privilèges sudo: voir / etc / sudoers ) lors de l'exécution npm install express-generator -g
, mais en effet, ce n'est pas une bonne idée, ce qui peut entraîner des problèmes d'autorisation.
REMARQUER
Il y a des instructions pour l'installation express-generator
avec -g
option, afin d'avoir le script express-cli.js
disponible sur le chemin du système, mais vous pouvez également utiliser le script installé localement, situé sur le node_modules
si votre projet npm:
$ ./node_modules/express-generator/bin/express-cli.js --view=pug myapp
Si un message comme / usr / bin / env: 'node': Aucun fichier ou répertoire de ce type n'apparaît, installez nodejs-legacy
(Debian / Ubuntu)
À mon humble avis, utiliser -g
(également utiliser sudo
) est comme des dracones hic sunt , si vous n'êtes pas sûr des conséquences.
Pour plus d'informations: