Solución:
Hay un problema con la actualización de npm en Windows. La instalación inicial realizada como parte de la instalación de nodejs usando un paquete msi creará un archivo npmrc:
C:Program Filesnodejsnode_modulesnpmnpmrc
cuando actualiza npm usando:
npm install -g [email protected]
instalará la nueva versión en:
C:UsersJackAppDataRoamingnpm
asumiendo que su nombre es Jack, que es% APPDATA% npm.
La nueva instalación no incluye un archivo npmrc y sin él, el directorio raíz global se basará en el lugar desde donde se ejecutó el nodo, por lo tanto, es C:Program Filesnodejsnode_modules
Puede verificar esto ejecutando:
npm root -g
Esto no funcionará ya que npm no tiene permiso para escribir en el "Program Files"
directorio. Debe copiar el archivo npmrc de la instalación original en la nueva instalación. De forma predeterminada, el archivo solo tiene la siguiente línea:
prefix=${APPDATA}npm
Para mí (estando en Windows 10), el archivo npmrc se encontraba en:
%USERPROFILE%.npmrc
Probado con:
- npm v4.2.0
- Node.js v7.8.0
Parece los archivos npm
utiliza para editar sus archivos de configuración no se crean en una instalación limpia, ya que npm
tiene una opción predeterminada para cada uno. Es por eso que aún puede obtener opciones con npm config get <option>
: tener esos archivos solo anula los valores predeterminados, no crea las opciones desde cero.
Nunca había tocado mi npm config
cosas antes de hoy, a pesar de que lo había tenido durante meses. Ninguno de los archivos estaba allí todavía, como ~/.npmrc
(en una máquina con Windows 8.1 con Git Bash
), pero podría correr npm config get <something>
y, si fuera un correcto npm
opción, devolvió un valor. Cuando corrí npm config set <option> <value>
, el archivo ~/.npmrc
parecía crearse automáticamente, con la opción & su valor como la única línea sin comentarios.
En cuanto a las opciones de eliminación, parece que esto simplemente restablece el valor al valor predeterminado, o no hace nada si esa opción nunca se configuró o no se configuró y nunca se restableció. Además, si esa opción es la única opción establecida explícitamente, parece que ~/.npmrc
también se elimina y se vuelve a crear si set
cualquier otra cosa más tarde.
En su caso (suponiendo que siga siendo el mismo más de un año después), parece que nunca configuró el proxy
opción en npm
. Por lo tanto, como npm
‘s config
dice la página de ayuda, está configurada para lo que sea http_proxy
(que no distingue entre mayúsculas y minúsculas) es la variable de entorno. Esto significa que no hay nada que delete
, a menos que desee “eliminar” su proxy HTTP, aunque podría set
la opción o variable de entorno a otra cosa y espero que ninguna de las dos interrumpa su configuración de alguna manera.