Je suis plus prudent que d'habitude parce que j'ai été troublé par le comportement du npmpassé.
Je suis sur un Mac et j'ai installé node.js via brew install node .
Maintenant que je veux exécuter jslint.jssur la ligne de commande en tant que commande, jslintje trouve que la façon canonique d'accomplir cela est de sudo npm install -g jslintfonctionner 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/binne pas être dans mon$PATH .
1) Pourquoi n'a-t-il brewpas installé le npm binchemin global vers le chemin? Peut-être l'a-t-il fait, mais quelque chose zshne fait que le gâcher. Où pourrais-je trouver cela?
2) Dois-je faire ça? (Ajouter :/usr/local/share/npm/binau fichier exporté $PATHen 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/binpeut-ê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.