Je suis plus prudent que d'habitude parce que j'ai été troublé par le comportement du npm
passé.
Je suis sur un Mac et j'ai installé node.js via brew install node
.
Maintenant que je veux exécuter jslint.js
sur la ligne de commande en tant que commande, jslint
je trouve que la façon canonique d'accomplir cela est de sudo npm install -g jslint
fonctionner avec cette sortie:
$ sudo npm install -g jslint
npm http GET https://registry.npmjs.org/jslint
npm http 200 https://registry.npmjs.org/jslint
npm http GET https://registry.npmjs.org/jslint/-/jslint-0.1.9.tgz
npm http 200 https://registry.npmjs.org/jslint/-/jslint-0.1.9.tgz
npm http GET https://registry.npmjs.org/nopt
npm http 200 https://registry.npmjs.org/nopt
npm http GET https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz
npm http 200 https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz
npm http GET https://registry.npmjs.org/abbrev
npm http 200 https://registry.npmjs.org/abbrev
npm http GET https://registry.npmjs.org/abbrev/-/abbrev-l.0.4.tgz
npm http 200 https://registry.npmjs.org/abbrev/-/abbrev-1.0.4.tgz
/usr/local/share/npm/bin/jslint -> /usr/local/share/npm/lib/node_modules/jslint/
bin/jslint.js
jslint@0.1.9 /usr/local/share/npm/lib/node_modules/jslint
└── nopt@1.0.10 (abbrev@1.0.4)
Par la suite
$ jslint ply.js
zsh: command not found: jslint
en raison de /usr/local/share/npm/bin
ne pas être dans mon$PATH
.
1) Pourquoi n'a-t-il brew
pas installé le npm
bin
chemin global vers le chemin? Peut-être l'a-t-il fait, mais quelque chose zsh
ne fait que le gâcher. Où pourrais-je trouver cela?
2) Dois-je faire ça? (Ajouter :/usr/local/share/npm/bin
au fichier exporté $PATH
en bas de mon~/.zshrc
)
Il semble que ce n'est pas la bonne façon de le faire car si j'installe quelque chose d'autre plus tard (en utilisant Homebrew ou quelque chose), je devrai l'ajouter à mon script de démarrage zsh pour définir le chemin. Je suppose que dans ce cas particulier, c'est juste une question denpm install -g
ne pas créer les bons liens symboliques dans un emplacement "approprié" (comme /usr/local/bin
peut-être).
Je pense que je vais créer manuellement des liens symboliques à l'intérieur /usr/local/bin
pour tous les programmes avec lesquels j'ai des problèmes et cela devrait être assez bon pour mes besoins.
ÉDITER : Je mets à jour cela en 2019, car cette vieille question est populaire mais maintenant obsolète à la fois en termes de flux de travail personnel et également en termes de meilleure façon d'installer le nœud et de gérer ses différentes dépendances.
Mon flux de travail personnel consiste maintenant à utiliser le programme d'installation obtenu à partir de nodejs.org pour installer node sur les systèmes. En fait, je fais plus confiance à cela qu'au package homebrew lui-même, car il sait mieux gérer les fichiers. Si vous souhaitez changer votre nœud système de 8.10 à 10.15, que ce soit sur Mac ou Windows, téléchargez simplement le programme d'installation de nodejs.org pour 10.15 pour votre système d'exploitation. Tenter de mettre à niveau le nœud installé via homebrew s'est toujours avéré être une approche plus difficile dans mon expérience.
En outre, la chose la plus importante à souligner est que l'utilisation de sudo comme indiqué dans mon exemple d'installation npm de jslint ci-dessus est fortement déconseillée; Je suis à peu près certain que les packages homebrew ne doivent jamais être installés ou interagis avec le superutilisateur. Cela ne devrait pas être nécessaire et entraînera des maux de tête pour les autorisations de fichiers!
De plus, je recommande ESLint plutôt que jslint, et je n'ai pas utilisé jslint depuis des années.