我正在尝试从私有存储库安装库,并且在尝试使用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"
:结束修改
非常感谢任何帮助。谢谢!
答案 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