web-dev-qa-db-fra.com

npm ne lit pas le fichier .npmrc

J'essaie d'installer une bibliothèque à partir d'un référentiel privé et je reçois toujours une erreur en essayant d'utiliser npm.

J'utilise: OSX Mavericks 10.9.3 Node v0.10.28 npm 1.4.10 (ceci a été installé après avoir essayé avec 1.4.13 et cela ne fonctionne toujours pas)

Je l'exécute à partir de mon répertoire personnel et le ~/.npmrc le fichier se trouve dans le répertoire.

chaque fois que j'exécute la commande: npm install 'library name here'

J'obtiens l'erreur suivante:

npm http GET https://registry.npmjs.org/dslib-js
npm http 404 https://registry.npmjs.org/dslib-js
npm ERR! 404 404 Not Found: dslib-js
npm ERR! 404 
npm ERR! 404 'dslib-js' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it
npm ERR! 404 
npm ERR! 404 Maybe try 'npm search dslib'
npm ERR! 404 
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, or http url, or git url.

npm ERR! System Darwin 13.2.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "dslib-js"
npm ERR! cwd /Users/marcos.pedreiro
npm ERR! node -v v0.10.28
npm ERR! npm -v 1.4.10
npm ERR! code E404
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/marcos.pedreiro/npm-debug.log
npm ERR! not ok code 0

Modifications:

Quand je lance ls -a (dans le répertoire personnel) voici la sortie:

.           .ssh            Music
..          .Subversion     Pictures
.CFUserTextEncoding .vagrant.d      Public
.DS_Store       Applications        VirtualBox VMs
.Trash          Desktop         clients
.bash_history       Documents       dev
.gradle         Downloads       npm-debug.log
.matlab         Google Drive        ~:.npmrc
.npm            Library         ~:.npmrc.template
.npmrc.bak      Movies

Ceci est la sortie de la commande npm config ls -l | grep config

; cli configs
globalconfig = "/usr/local/etc/npmrc"
userconfig = "/Users/marcos.pedreiro/.npmrc"

: Fin des modifications

Toute aide serait grandement appréciée. Merci!

14
Maverick

Si ce que vous avez publié est vraiment la sortie de ls -a, le nom de fichier est incorrect.

~:.npmrc doit être nommé .npmrc.

Le ~ au début suggère que vous avez utilisé un raccourci Shell pour placer le fichier dans votre répertoire personnel (peut-être quelque chose comme cp .npmrc ~:.npmrc. Le problème est probablement le côlon. ~/ sera interprété comme "mon répertoire personnel", mais ~something/ sera interprété comme le répertoire personnel de l'utilisateur nommé something. Puisqu'il n'y a pas d'utilisateur something, le système est probablement juste traité ~: comme du texte littéral.

Essayez de renommer le fichier et voyez si cela fonctionne:

mv "~:.npmrc" .npmrc
7
Brandon

Dans mon cas, l'encodage des caractères était incorrect pour une raison quelconque, j'ai dû le convertir en UTF-8.

J'ai utilisé "npm get" pour découvrir le problème, le résultat était plein de chaînes u/2411 ....

9
Segimerus

Au cas où cela aiderait quelqu'un à atterrir ici: j'avais un npm-shrinkwrap.json fichier à la racine du projet qui remplaçait la configuration registry de .npmrc. La suppression du fichier de film rétractable a résolu le problème.

5
Pedro

Je suppose que le Node package dslib-js Est contenu dans votre référentiel npm privé. Vous devrez définir ce référentiel dans votre fichier local .npmrc. Pour Par exemple, si votre référentiel était à http://myrepo.com:4000, vous exécuteriez la commande suivante:

$ npm set registry "http://myrepo.com:4000"

L'erreur que vous obtenez ci-dessus est due au fait que le package dslib-js N'est pas disponible sur npmjs.org, comme vous pouvez le voir en visitant cette URL: https://www.npmjs.org/package/dslib -js . Par défaut (sans registre défini dans votre fichier .npmrc), Npm recherchera https://registry.npmjs.org (Qui peut être parcouru sur le Web via l'URL que j'ai collée ci-dessus).

3
dylants

Pour les personnes exécutant Windows, vérifiez si Windows cache les extensions de fichier. Pour moi, Windows disait que le nom du fichier était .npmrc, mais le vrai nom de fichier était .npmrc.txt.

Suppression du .txt l'extension a résolu le problème.

3
AJ Richardson

Dans le cas où cela aiderait quelqu'un ... mon problème était que j'ai créé le fichier .npmrc dans un éditeur de texte, donc npm ignorait le fichier en raison des autorisations sur celui-ci. Afin de le réparer, j'ai supprimé le fichier. Ensuite, j'ai refait le fichier via la ligne de commande.

À votre santé!

1
rardoz

J'ai manqué quelques choses pour télécharger mes packages publiés dans mon référentiel privé.

First Le nom du fichier était .npmrc.txt au lieu de .npmrc. Sous Windows, vous ne pouvez pas créer de nom de fichier directement. J'ai donc ouvert l'invite de commande puis tiré

echo "auth_token" > .npmrc

Second Je viens de coller mon auth_token dans .npmrc fichier. Vous devez également ajouter l'adresse de registre.

//**.**.visualstudio.com/_packaging/**/npm/registry/:_authToken=token_here
0
Sunil Garg