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!
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
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 ....
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.
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).
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.
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é!
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