簡體   English   中英

npm 未讀取.npmrc 文件

[英]npm not reading .npmrc file

我正在嘗試從私有存儲庫安裝一個庫,並且在嘗試使用 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

編輯:

當我運行ls -a (在主目錄中)時,這是 output:

.           .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的 output npm config ls -l | grep config

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

:結束編輯

任何幫助將不勝感激。 謝謝!

在我的情況下,由於某種原因字符編碼是錯誤的,我不得不將其轉換為 UTF-8。

我用“npm get”來發現問題,結果全是 u/2411... 字符串。

如果您發布的內容確實是ls -a的輸出,則文件名是錯誤的。

~:.npmrc應該命名為.npmrc

開頭的 ~ 建議您使用 shell 快捷方式將文件放在您的主目錄中(可能類似於cp .npmrc ~:.npmrc 。問題可能是冒號。 ~/將被解釋為“我的主目錄”,但是~something/將被解釋為名為something的用戶的主目錄。由於沒有用戶something ,系統可能只是將 ~: 作為文字文本。

嘗試重命名文件,看看是否有效:

mv "~:.npmrc" .npmrc

如果它可以幫助任何人登陸這里:我在項目根目錄中有一個npm-shrinkwrap.json文件,它覆蓋了.npmrcregistry配置。 刪除shrinkwrap 文件解決了這個問題。

對於運行 Windows 的用戶,請檢查 Windows 是否隱藏了文件擴展名。 對我來說,Windows 說文件名是.npmrc ,但真正的文件名是.npmrc.txt

刪除.txt擴展名解決了這個問題。

我假設 Node 包dslib-js包含在您的私有 npm 存儲庫中。 您需要在本地.npmrc文件中設置該存儲庫。 例如,如果您的存儲庫位於http://myrepo.com:4000您將運行以下命令:

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

你上面的錯誤是因為包dslib-js在 npmjs.org 上不可用,你可以通過訪問這個 URL 看到: https ://www.npmjs.org/package/dslib-js。 默認情況下(沒有在.npmrc文件中設置注冊表),npm 將搜索https://registry.npmjs.org (可以通過我上面粘貼的 URL 在網絡上瀏覽)。

如果這對任何人有幫助...我的問題是我在文本編輯器中創建了 .npmrc 文件,因此 npm 由於其權限而忽略了該文件。 為了修復它,我刪除了該文件。 然后我通過命令行重新制作了文件。

干杯!

我錯過了一些東西來下載我在我的私人存儲庫中發布的包。

首先文件名是.npmrc.txt而不是.npmrc 在 Windows 中,您不能直接創建文件名。 所以我打開命令提示符然后開火

echo "auth_token" > .npmrc

其次,我只是將我的auth_token粘貼到.npmrc文件中。 您還必須附加注冊表地址。

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

npm 沒有拾取.npmrc 的原因略有不同。 但是在我的項目的 .npmrc 文件中更改注冊表設置后,我必須刪除以前存在的 node_modules 文件夾和 package-lock.json,然后使用npm install --save 沒有多大意義,但在此之后,(重新)創建的 package-lock.json 文件使用了正確的注冊表。

萬一有人和我有同樣的問題。 我們有一個私有注冊表,但在添加 .npmrc 文件之前,我嘗試運行npm install 這創建了 package-lock.json 並覆蓋了在 .npmrc 文件中添加的新注冊表。

只需刪除 package-lock.json 並重新運行npm install為我修復它

我遇到了一個場景,其中npm ci沒有從 .npmrc 文件中選擇/讀取配置。

npm install替換它解決了這個問題。

節點版本 10.18.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM