"Npm config set Registry https://registry.npmjs.org/" no funciona en el archivo bat de Windows

193

Creo a.bat en Windows 7, el contenido de a.bat es:

@echo off
npm config set registry https://registry.npmjs.org/

y luego ejecuta a.bat, pero no funciona, la palabra "set" es una palabra clave especial para npm y bat, ¿hay algún método para resolver esta pregunta?

mopduan
fuente
296
¿Alguien más viene a esta publicación cada vez que quiere ver cuál es la URL del registro npm? jaja
kevingilbert100
9
FYI: necesitaba la versión .com del registro: es decir, en https://registry.npmjs.com/lugar dehttps://registry.npmjs.org/
infl3x
@ infl3x ¿por qué? ¿Cuáles son las diferencias?
htho
77
@ kevingilbert100 npm config get registrypara conocer la URL del registro
Sridhar
2
@Sridhar Nope. Eso solo proporciona el registro del conjunto actual, no el registro npm "oficial".
Emobe

Respuestas:

224

No debe cambiar el registro npm usando .batarchivos. En su lugar, intente utilizar modificar el .npmrcarchivo para el que se configura npm. El comando correcto para cambiar el registro es

npm config set registry <registry url>

puede encontrar más información con el npm help configcomando, también verifique los privilegios cuando y si está ejecutando .batarchivos de esta manera.

Gntem
fuente
puede ser el método que utilicé no es adecuado para mi pregunta, pero aún así gracias por su respuesta :)
mopduan
2
@MarcellodeSales intentarnpm config set registry=<registry url>
L1fescape
77
La configparte no es necesaria, puede ejecutarse solo npm get registrypara ver su actual y npm set registry https://registry.npmjs.org/volver a configurarla por defecto.
AlecRust
¿Es posible configurar npm config set <carpeta local node_modules>? Si no quiero descargar nada de internet y todos los artefactos están dentro de la aplicación.
sumit sachdeva
85

También podemos ejecutar npm install con registryopciones para múltiples URL de registro personalizadas.

npm install --registry=https://registry.npmjs.org/ 
npm install --registry=https://custom.npm.registry.com/ 
Venkat.R
fuente
1
Lo he estado buscando por mucho tiempo. ¡Gracias por compartir!
falsarella
1
usted señor es un salvador.
Raj Gupta
56

Puede cambiar el uso de .bat, asegúrese de ejecutar el comando de llamada antes, es de esperar que esto ayude a cualquier persona en el futuro a hacer comandos .bat similares

call npm config set registry https://registry.npmjs.org/
jsmartfo
fuente
77
@Milad no lo sé. Es posible que desee crear un contador atómico y utilizar un sistema controlado por eventos para actualizar el contador. Puede usar una base de datos distribuida para almacenar el contador para que su contador esté altamente disponible.
prayagupd
19

En la versión 4.4.1, puede usar:

npm config set @myco:registry=http://reg.example.com

Donde @myco es el alcance de su paquete. Puede instalar el paquete de esta manera:

npm install @myco/my-package

ref: https://docs.npmjs.com/misc/scope

Gilberto Alexandre
fuente
15

Probablemente llegue demasiado tarde para contestar. Pero si alguien lo necesita, el siguiente funciona bien, ya que lo he usado muchas veces.

npm config set registry=https://registry.npmjs.com/
Kavya Rani
fuente
5

En npm versión 3.7.3

npm set registry=http://whatever/

madKakoo
fuente
2

Al ejecutar su .bat, está configurando la configuración solo para esa sesión, no globalmente. Cuando abra y otro cmd solicite y ejecute npm installesa configuración no se establecerá para esta sesión, por lo tanto, modifique su archivo .bat

@echo off
npm config set registry https://registry.npmjs.org/
@cmd.exe /K
Rakesh
fuente
1
  1. Establecer registro npm globalmente

    use el siguiente comando para modificar el archivo de configuración .npmrc para el usuario conectado

    npm config set registry <registry url>

    Ejemplo: npm config set registry https://registry.npmjs.org/


  1. Establecer el alcance del registro npm

    Los ámbitos permiten la agrupación de paquetes relacionados. Los paquetes con ámbito se instalarán en una subcarpeta en la carpeta node_modules .

    Ejemplo : node_modules / @ my-org / packagaename

    Para establecer el uso del registro de alcance: npm config set @my-org:registry http://example.reg-org.com

    Para instalar paquetes usando el uso del alcance: npm install @my-org/mypackage

    cada vez que instale cualquier paquete desde scope @ my-org, npm buscará en la configuración del registro vinculada a scope @ my-org la URL del registro.


  1. Establecer el registro npm localmente para un proyecto

    Para modificar el registro npm solo para el proyecto actual. crear un archivo dentro de la carpeta raíz del proyecto como.npmrc

    Agregue los siguientes contenidos en el archivo

   registry = 'https://registry.npmjs.org/'
Ivix4u
fuente
0
2.name can no longer contain capital letters

no use letras mayúsculas para su paquete:

npm install --save uex

utilizar este:

npm install --save vuex
Hamid Shariati
fuente
0

Es posible que no pueda cambiar el registro npm usando el .batarchivo como señaló Gntem . Pero entiendo que necesita la capacidad de automatizar el cambio de registros. Puede hacerlo al tener sus .npmrcconfiguraciones en archivos separados (por ejemplo, npmrc_jfrog & npmrc_default ) y tener su.bat archivos hagan la tarea de copiar.

Por ejemplo (en Windows): Su default_registry.battendrá

xcopy /y npmrc_default .npmrc

y tu jfrog_registry.battendrás

xcopy /y npmrc_jfrog .npmrc

Nota: /y suprime las indicaciones para confirmar que desea sobrescribir un archivo de destino existente.

Esto asegurará que todas las propiedades de configuración ( registro, proxy, apiKeys, etc. ) se copien en.npmrc .

Puede leer más sobre xcopy aquí .

Srichakra
fuente