2013-03-20 70 views
20

我完全找不到npm在其中存儲全局設置的情況。nodejs npm窗口上缺少全局配置

NPM配置得到USERCONFIG

C:\Users\Jack\.npmrc 

NPM配置獲取globalconfig

C:\Users\Jack\AppData\Roaming\npm\etc\npmrc 

有沒有文件在這兩種路徑,但

NPM配置獲取代理 - >返回我的代理工作網址。我想刪除它。

NPM配置-g刪除代理

npm ERR! Error: ENOENT, unlink 'C:\Users\Jack\AppData\Roaming\npm\etc\npmrc' 

npm ERR! System Windows_NT 6.2.9200 
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "config" "-g" "delete" "proxy" 
npm ERR! cwd C:\f\Dropbox\apps 
npm ERR! node -v v0.8.22 
npm ERR! npm -v 1.2.14 
npm ERR! path C:\Users\Jack\AppData\Roaming\npm\etc\npmrc 
npm ERR! code ENOENT 
npm ERR! errno 34 
npm ERR! 
npm ERR! Additional logging details can be found in: 
npm ERR!  C:\f\Dropbox\apps\npm-debug.log 
npm ERR! not ok code 0 
+0

https://github.com/npm/npm/wiki/Troubleshooting#upgrading-on-windows – Lonely 2016-12-23 09:51:26

回答

14

看起來像npm用於編輯其配置文件的文件不是在全新安裝中創建的,因爲npm對每個文件都有默認選項。這就是爲什麼您仍然可以通過npm config get <option>獲得選項:讓這些文件僅覆蓋默認值,它不會從頭開始創建選項。

我以前從未碰過我的npm config東西,儘管我已經擁有了好幾個月了。目前還沒有任何文件,例如~/.npmrc(在Windows 8.1機器上有Git Bash),但我可以運行npm config get <something>,如果是正確的npm選項,它會返回一個值。當我運行npm config set <option> <value>時,文件~/.npmrc似乎是自動創建的,其選項&的值爲唯一未註釋的行。

至於刪除選項,它看起來像只是將值設置回默認值,或者什麼也不做,如果該選項從未設置或未復位&永不復位。此外,如果該選項是唯一明確設置的選項,則看起來像~/.npmrc也會被刪除,並且如果您以後再使用set則會重新創建該選項。

在你的情況下(假設它在一年後仍然是相同的),它看起來像你從未在npm中設置proxy選項。因此,如npmconfig幫助頁面所述,它被設置爲任何http_proxy(區分大小寫)環境變量。這意味着沒有任何東西delete,除非你想「刪除」你的HTTP代理,儘管你可以選擇set選項或環境變量,並希望它們不會以某種方式破壞你的設置。

+0

我從來沒有真正想過這個ou t,它必須是所提到的Env變量,但我發誓我沒有設置它們。 – Jack 2014-04-04 20:51:57

+0

當時我是用一個腳本,設置 '[環境] :: SetEnvironmentVariable方法( 「HTTP_PROXY」,$代理, 「用戶」)' 解封 ' 「HTTP_PROXY」,$空, 「用戶」' 新控制檯代理變量卡住了。 我總結自己,Windows並沒有真正聽取用戶環境設置的變化。如果你想設置一個。設置它並保留它。如果開啓/關閉設置我的代理服務器依賴於SSID,那麼請使用進程env變量,然後將檢查放在控制檯配置文件中。 在$ profile.currentUserAllHosts文件中堅持'$ Env:http_prxy'就是我所使用的。 – Jack 2014-04-04 20:59:22

+0

它是'未設置<環境變量>',而不是'未設置'。其餘的我不確定。 – trysis 2014-04-04 21:40:35

1

這不是你正在尋找的路徑?

C:\Program Files\nodejs\node_modules\npm\npmmrc

我知道,NPM輸出如此,但全球的文件夾是Node.js的安裝,所有的模塊的文件夾。

20

在Windows下升級npm時出現問題。該inital安裝完畢後作爲的NodeJS的部分安裝使用MSI軟件包將創建一個npmrc文件:

C:\Program Files\nodejs\node_modules\npm\npmmrc

當您使用更新NPM:

npm install -g [email protected]

它會安裝新版本在:

C:\Users\Jack\AppData\Roaming\npm

假設你名稱是Jack,它是%APPDATA%\ npm。

新安裝不包括npmrc文件並沒有它全球根目錄將根據所在節點從運行,因此它是C:\Program Files\nodejs\node_modules

可以通過運行檢查:

npm root -g

這不會工作,因爲npm沒有寫入"Program Files"目錄的權限。您需要將npmrc文件從原始安裝中複製到新安裝中。默認情況下,該文件只有下面一行:

prefix=${APPDATA}\npm

這是這裏介紹:https://github.com/npm/npm/wiki/Troubleshooting

+0

此鏈接https://github.com/npm/npm/wiki/Troubleshooting像魅力一樣工作! – SharpCoder 2016-07-25 19:49:13

4

你試過運行npm config list?而且,如果您想查看默認值,請運行npm config ls -l

+1

評論不應作爲答案發布。 – 2016-02-23 13:51:52

8

對我來說(即在Windows 10)的npmrc file定位於:

  • NPM V4.2.0
  • 的Node.js v7.8.0

%USERPROFILE%\.npmrc 

與測試

+1

與'npm v5.4.2'相同 – Sam 2017-10-23 13:12:22