npm不读.npmrc文件

时间:2014-05-27 21:16:52

标签: node.js macos npm

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

我正在使用: OSX Mavericks 10.9.3 节点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

编辑:

当我运行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

这是命令npm config ls -l | grep config

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

:结束修改

非常感谢任何帮助。谢谢!

8 个答案:

答案 0 :(得分:6)

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

~:.npmrc应命名为.npmrc

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

尝试重命名文件并查看其是否有效:

mv "~:.npmrc" .npmrc

答案 1 :(得分:5)

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

答案 2 :(得分:4)

在我的情况下,由于某种原因字符编码错误,我不得不将其转换为UTF-8。

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

答案 3 :(得分:2)

对于运行Windows的用户,请检查Windows是否隐藏了文件扩展名。对我来说,Windows说文件名是C:\Users\this_\AppData\Local\Temp\main-124cc2.o: In function `void std::this_thread::sleep_for<long long, std::ratio<1ll, 1000ll> >(std::chrono::duration<long long, std::ratio<1ll, 1000ll> > const&)': C:\mingw-w64\mingw64\lib\gcc\x86_64-w64-mingw32\6.2.0\include\c++/thread:322: undefined reference to `nanosleep' clang++.exe: error: linker command failed with exit code 1 (use -v to see invocation) ,但真正的文件名是.npmrc

删除.npmrc.txt扩展程序可解决此问题。

答案 4 :(得分:1)

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

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

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

答案 5 :(得分:1)

如果这有助于任何人......我的问题是我在文本编辑器中创建了.npmrc文件,因此npm因为权限而忽略了该文件。为了解决这个问题,我删除了该文件。然后我通过命令行重新生成文件。

干杯!

答案 6 :(得分:0)

我错过了一些下载我的私人存储库中发布的软件包的方法。

首先文件名为.npmrc.txt而不是.npmrc。在Windows中,您无法直接创建文件名。所以我打开命令提示然后解雇了

echo "auth_token" > .npmrc

第二次我刚刚在auth_token文件中粘贴.npmrc。您还必须附加注册表地址。

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

答案 7 :(得分:-1)

我遇到了一种情况,npm ci并未从.npmrc文件中选择/读取配置。

npm install替换它可以解决该问题。

节点版本10.18.0