Je suis plus prudent que d’habitude parce que j’ai été dérouté par le comportement de npm
par le 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
, j’aperçois que le moyen canonique d’y parvenir est Sudo npm install -g jslint
qui s’est exécuté avec succès 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
[email protected] /usr/local/share/npm/lib/node_modules/jslint
└── [email protected] ([email protected])
Par la suite
$ jslint ply.js
zsh: command not found: jslint
en raison de /usr/local/share/npm/bin
n'étant pas dans mon $PATH
.
1) Pourquoi brew
n’a-t-il pas installé le _ chemin global npm
bin
au chemin? Peut-être que oui, mais quelque chose que zsh
fait foirer. Où pourrais-je trouver ça?
2) Devrais-je faire cela? (Ajouter :/usr/local/share/npm/bin
au $PATH
exporté situé au bas de mon ~/.zshrc
)
Il semble que ce ne soit pas la bonne façon de le faire, car si j'installe autre chose plus tard (avec Homebrew ou autre), je devrai l'ajouter à mon script de démarrage zsh pour définir le chemin. Je suppose que dans ce cas particulier, il s’agit simplement de npm install -g
ne pas créer les bons liens symboliques dans un emplacement "correct" (comme /usr/local/bin
peut-être).
Je pense que ce que je vais faire est de créer manuellement des liens symboliques à l'intérieur de /usr/local/bin
pour tous les programmes avec lesquels j'ai des problèmes et cela devrait suffire à mes fins.
EDIT: J'effectue une mise à jour en 2019, car cette vieille question est populaire mais est maintenant obsolète tant pour mon flux de travail personnel que pour la meilleure façon d'installer le nœud et de le gérer. diverses dépendances.
Mon flux de travail personnel consiste maintenant à utiliser le programme d'installation obtenu de nodejs.org pour installer le noeud sur les systèmes. En réalité, je fais plus confiance au paquet homebrew lui-même, car il sait mieux gérer les fichiers. Si vous souhaitez modifier 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 à partir de nodejs.org for 10.15 pour votre système d'exploitation. Tenter de mettre à niveau un nœud installé via homebrew s'est toujours révélé être une approche plus difficile selon mon expérience.
En outre, la chose la plus importante à souligner est que l’utilisation de Sudo, comme indiqué dans l’installation de jslint de npm ci-dessus, est fortement déconseillée; Je suis à peu près certain que les packages homebrew ne doivent en aucun cas être installés ou interagis avec le superutilisateur. Cela ne devrait pas être nécessaire et conduira à des problèmes de permissions!
De plus, je recommande ESLint à jslint et je n’ai pas utilisé jslint depuis des années.
Extension de votre PATH
avec:
export PATH=/usr/local/share/npm/bin:$PATH
n'est pas une idée terrible. Cela dit, vous ne devriez pas avoir à le faire.
Lance ça:
npm config get prefix
La valeur par défaut sous OS X est /usr/local
, ce qui signifie que npm symétrise les fichiers binaires vers /usr/local/bin
, qui devrait déjà figurer sur votre PATH
(surtout si vous utilisez Homebrew).
Alors:
npm config set prefix /usr/local
si c'est autre chose, etSudo
avec npm! Selon le jslint docs , vous devriez juste pouvoir le npm install
le.Si vous avez installé npm en tant que Sudo (Sudo brew install
), essayez de le réinstaller avec plain ol 'brew install
. Homebrew est censé vous aider à rester libre Sudo
-.
Passé un moment sur cette question, et le commutateur PATH n'aidait pas. Mon problème était le bogue Homebrew/node/npm trouvé ici - https://github.com/npm/npm/issues/3794
Si vous avez déjà installé le noeud avec Homebrew, essayez **** Notez, par commentaire, que cela pourrait ne pas être sûr. Cela a fonctionné pour moi mais pourrait avoir des conséquences inattendues. Il semble également que la dernière version de Homebrew installe correctement npm. Il est donc probable que j'essaierais brew update
, brew doctor
, brew upgrade node
etc avant d'essayer ****:
npm update -gf
Ou, si vous souhaitez installer le noeud avec Homebrew et faire fonctionner npm, utilisez:
brew install node --without-npm
curl -L https://npmjs.org/install.sh | sh
J'utilise brew et le préfixe était déjà configuré pour être:
$ npm config get prefix
/Users/[user]/.node
J'ai remarqué que les dossiers bin et lib étaient la propriété de root, ce qui empêchait l'installation habituelle non-Sudo. Je les ai donc réappropriés à l'utilisateur.
$ cd /Users/[user]/.node
$ chown -R [user]:[group] lib
$ chown -R [user]:[group] bin
Ensuite, je viens d'ajouter le chemin d'accès à mon fichier .bash_profile situé dans/Utilisateurs/[utilisateur].
PATH=$PATH:~/.node/bin
si vous utilisez npm avec -g, n’avez pas besoin d’utiliser Sudo. Cela pourrait en fait créer plus de problèmes sur la route.
Généralement, brassage ou port vous permet de mettre à jour votre chemin afin de ne pas risquer de gâcher votre .zshrc, .bashrc, .cshrc ou le type de Shell que vous utilisez.
Tout le monde a le même problème, il est lié à un conflit entre brew et npm. Vérifiez cette solution https://Gist.github.com/DanHerbert/9520689
La solution simple est ...
Il suffit de mettre en dessous de la commande:
Sudo npm config get prefix
si ce n'est pas quelque chose comme ces /usr/local
, vous devez le réparer en utilisant la commande ci-dessous.
Sudo npm config set prefix /usr/local
...
Maintenant ça marche à 100%
J'ai réussi à réparer Vue Cli aucune erreur de commande en procédant comme suit:
Sudo nano ~/.bash_profile
pour modifier votre profil bash.export PATH=$PATH:/Users/[your username]/.npm-packages/bin
vue create my-project
et vue --version
etc.Je l’ai fait après avoir installé le dernier Vue Cli de https://cli.vuejs.org/
J'utilise généralement le fil, mais je l'ai installé globalement avec npm npm install -g @vue/cli
. Vous pouvez aussi utiliser du fil si vous voulez yarn global add @vue/cli
Remarque: vous devrez peut-être d'abord le désinstaller globalement si vous l'avez déjà installé: npm uninstall -g vue-cli
J'espère que cela t'aides!
Essayez de courir:
PATH=$PATH:~/npm/bin
puis effectuez un test en exécutant express
dans la ligne de commande. Cela a fonctionné pour moi.
Sudo brasser n'est plus une option, donc si vous installez avec brouillon à ce stade, vous obtiendrez 2 choses vraiment odieuses: A: il aime installer dans /usr/local/opts
ou selon cela,/usr/local/shared . Ce n’est pas un gros problème au début, mais j’ai eu des problèmes avec le nœud PATH, en particulier lorsque j’ai installé les peluches. B: vous êtes un peu coincé avec les commandes Sudo jusqu'à ce que vous désinstalliez et installiez le logiciel de cette façon ou que vous puissiez obtenir la pile de Bitnami
Je recommande cette méthode par rapport à l’option pile car elle est prête à fonctionner si vous avez plusieurs projets. Si vous utilisez la pile MEAN prédéfinie, vous devrez configurer des hôtes virtuels dans httpd.conf (plus pénible que XAMPP), ainsi que la mise à jour habituelle de vos extra/vhosts.conf et/etc/hosts pour chaque session supplémentaire. projet, sauf si vous souhaitez repointer et redémarrer votre serveur une fois la mise à jour effectuée.
Si vous avez lié les packages de noeud à l'aide de la commande Sudo
Ensuite, accédez au dossier où node_modules sont installés globalement.
Sur les systèmes Unix, ils sont normalement placés dans/usr/local/lib/node ou/usr/local/lib/node_modules lorsqu’ils sont installés globalement. Si vous définissez la variable d'environnement NODE_PATH sur ce chemin, les modules peuvent être trouvés par noeud.
Windows XP -% USERPROFILE%\Application Data\npm\node_modules Windows 7 -% AppData%\npm\node_modules
puis lancez la commande
ls -l
Cela donnera la liste de tous les nœuds_modules globaux et vous pourrez facilement voir les modules de nœuds liés.