2013-03-20 3 views
20

Я не могу найти вообще, где npm хранит свои глобальные настройки.nodejs npm глобальный конфиг отсутствует в окнах

НОЙ конфигурации получить UserConfig

C:\Users\Jack\.npmrc 

НОЙ конфигурация прибудет GlobalConfig

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

Там нет файлов на любом из этих путей и еще

НОЙ конфигурации получить прокси -> возвращает мой прокси url для работы. который я хочу удалить.

НПМ конфигурации -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

ответ

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.

В вашем случае (при условии, что он по-прежнему сохраняется на протяжении более года), похоже, что вы никогда не устанавливали опцию proxy в npm. Поэтому, как сообщает справочная страница npmconfig, она настроена на то, что имеет переменная окружения http_proxy (без учета регистра). Это означает, что ничего не стоит delete, если вы не хотите «удалить» свой HTTP-прокси, хотя вы могли бы set изменить параметр или переменную среды на что-то еще и надеяться, что ничто не нарушит вашу настройку.

+0

Я никогда не делал этого. t, Это должны быть упомянутые переменные Env, но, клянусь, я их отключил. – Jack

+0

В то время я использовал скрипт, который установлен '[среды] :: SetEnvironmentVariable ("http_proxy", $ прокси, "Пользователь")' 'снятия с охраны "http_proxy", $ нулевой, "Пользователь"' New консоль прокси-переменная застряла. Я пришел к выводу, что окна не прослушивают изменения настроек пользователя. если вы хотите установить его. Установите его и сохраните. Если он включен/выключен, как установка моего прокси-сервера, зависящего от SSID, на котором я включен, вместо этого используйте переменную env процесса и поместите проверку в профиль консоли. Вложение файла $ profile.currentUserAllHosts в '$ Env: http_prxy' - это то, с чем я работал. – Jack

+0

это 'unset ', а не 'unsetting'. Я не уверен в этом. – trysis

1

Разве это не путь, который вы ищете?

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

Я знаю, что НПМ выходы, но глобальная папка является папка, в которой Node.js установлен и все модули.

20

Существует проблема с обновлением npm под Windows.Щёток инсталляции сделан как часть nodejs установки с помощью пакета MSI создаст файл npmrc:

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

при обновлении НОГО с помощью:

npm install -g [email protected]

он установит новую версию в:

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

при условии, что ваш name - это 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

4

Вы пробовали работает npm config list? И, если вы хотите увидеть значения по умолчанию, запустите npm config ls -l.

+1

комментарии не должны размещаться в качестве ответов. –

8

Для меня (находясь на Windows, 10) npmrc file находился в:

%USERPROFILE%\.npmrc 

Протестировано:

  • НПМ v4.2.0
  • Node.js v7.8.0
+1

То же самое с 'npm v5.4.2' – Sam

Смежные вопросы