npm不读.npmrc文件

Mav*_*ick 12 macos node.js npm

我正在尝试从私有存储库安装库,并且在尝试使用npm时遇到错误.

我正在使用:OSX Mavericks 10.9.3 Node v0.10.28 npm 1.4.10(这是在尝试使用1.4.13之后安装的,但仍然无法正常工作)

我从我的主目录运行它,该~/.npmrc文件在目录中.

每当我运行命令时: npm install 'library name here'

我收到以下错误:

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
Run Code Online (Sandbox Code Playgroud)

编辑:

当我运行ls -a(在主目录中)这是输出:

.           .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
Run Code Online (Sandbox Code Playgroud)

这是命令的输出 npm config ls -l | grep config

; cli configs
globalconfig = "/usr/local/etc/npmrc"
userconfig = "/Users/marcos.pedreiro/.npmrc"
Run Code Online (Sandbox Code Playgroud)

:结束编辑

任何帮助将不胜感激.谢谢!

AJ *_*son 8

对于运行 Windows 的用户,请检查 Windows 是否隐藏文件扩展名。对我来说,Windows 说文件名是.npmrc,但真正的文件名是.npmrc.txt.

删除.txt扩展程序解决了该问题。


Bra*_*don 7

如果您发布的内容确实是输出ls -a,则文件名错误.

~:.npmrc应该命名.npmrc.

〜开始时建议您使用shell快捷方式将文件放在主目录中(可能类似于cp .npmrc ~:.npmrc.问题可能是冒号. ~/将被解释为"我的主目录",但~something/将被解释为主目录用户名something.由于没有用户something,系统可能只被视为〜:作为文字文本.

尝试重命名该文件,看看是否有效:

mv "~:.npmrc" .npmrc
Run Code Online (Sandbox Code Playgroud)


小智 7

就我而言,由于某种原因,字符编码是错误的,我不得不将其转换为UTF-8。

我使用“ npm get”发现问题,结果充满了u / 2411 ...字符串。

  • 这发生在我身上。我使用“New-Item”命令从 Powershell 创建了“.npmrc”文件,编码是“UCS-2 LE BOM”而不是“UTF-8”。 (5认同)
  • 这为我解决了这个问题。就我而言,我没有看到任何奇怪的字符。我用 Visual Code 打开了 .npmrc 文件,在角落里我可以看到该文件由于某种原因是 UTF-16。我只是将其保存为 UTF-8 并且它有效。 (2认同)

dyl*_*nts 6

我假设 Node 包dslib-js包含在您的私有 npm 存储库中。您需要在本地.npmrc文件中设置该存储库。例如,如果您的存储库位于http://myrepo.com:4000您将运行以下命令:

$ npm set registry "http://myrepo.com:4000"
Run Code Online (Sandbox Code Playgroud)

您收到的上述错误是因为该软件包dslib-js在 npmjs.org 上不可用,您可以通过访问此 URL 看到:https://www.npmjs.org/package/dslib-js。默认情况下(文件中没有设置注册表.npmrc),npm 将进行搜索https://registry.npmjs.org(可以通过我上面粘贴的 URL 在网络上浏览)。


Ped*_*dro 5

如果它帮助任何人登陆这里:我npm-shrinkwrap.json在项目根目录中有一个文件覆盖了registry配置.npmrc.删除shrinkwrap文件解决了这个问题.