"Npm config set registry https://registry.npmjs.org/" não está funcionando no arquivo bat do Windows

193

Eu crio o a.bat no windows 7, o conteúdo do a.bat é:

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

e, em seguida, execute a.bat, mas não está funcionando, acho que a palavra "set" é uma palavra-chave especial para npm e bat, existem métodos para resolver essa questão?

mopduan
fonte
296
Alguém mais vem a este post toda vez que deseja ver qual é o URL do registro npm? haha
kevingilbert100
9
FYI: eu precisava a versão .com do Registro: ou seja https://registry.npmjs.com/, em vez dehttps://registry.npmjs.org/
infl3x
@ infl3x porque? Quais são as diferenças?
htho 17/06
7
@ kevingilbert100 npm config get registrypara saber o URL do registro
Sridhar
2
@Sridhar Nope. Isso fornece apenas o registro do conjunto atual, não o registro npm "oficial".
Emobe 30/01

Respostas:

224

Você não deve alterar o registro npm usando .batarquivos. Em vez disso, tente usar o .npmrcarquivo para o qual está a configuração npm. O comando correto para alterar o registro é

npm config set registry <registry url>

você pode encontrar mais informações com o npm help configcomando, também verificar privilégios quando e se estiver executando .batarquivos dessa maneira.

Gntem
fonte
pode ser o método utilizado não é adequado para a minha pergunta, mas ainda obrigado pela sua resposta :)
mopduan
2
@MarcellodeSales trynpm config set registry=<registry url>
L1fescape
7
A configpeça não é necessária, pode ser executada apenas npm get registrypara ver sua corrente e npm set registry https://registry.npmjs.org/configurá-la de volta ao padrão.
AlecRust 02/08/19
é possível o registro do conjunto de configurações npm <pasta node_modules local>. Se eu não quiser baixar nada da internet e todos os artefatos estão dentro do aplicativo.
sumit sachdeva
85

Também podemos executar a instalação do npm com registryopções para vários URLs de registro personalizados.

npm install --registry=https://registry.npmjs.org/ 
npm install --registry=https://custom.npm.registry.com/ 
Venkat.R
fonte
1
Eu tenho procurado por um longo tempo. Obrigado por compartilhar!
Falsarella
1
você senhor é um salvador.
Raj Gupta
56

Você pode alterar usando o .bat, certifique-se de executar o comando call anteriormente, espero que isso ajude alguém no futuro a fazer comandos .bat semelhantes

call npm config set registry https://registry.npmjs.org/
jsmartfo
fonte
7
@ Milad eu não sei. Você pode criar um contador atômico e usar o sistema acionado por eventos para atualizar o contador. Você pode usar o banco de dados distribuído para armazenar o contador, para que ele esteja altamente disponível.
prayagupd
19

Na versão 4.4.1, você pode usar:

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

Onde @myco é o escopo do seu pacote. Você pode instalar o pacote desta maneira:

npm install @myco/my-package

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

Gilberto Alexandre
fonte
15

Provavelmente estou atrasado para responder. Mas, se alguém precisar, seguirá bem, pois eu o usei várias vezes.

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

Na versão 3.7.3 do npm

npm set registry=http://whatever/

madKakoo
fonte
2

Ao executar seu .bat, você está definindo a configuração somente para essa sessão, não globalmente. Quando você abre e outro prompt de cmd e executa npm installessa configuração não será definida para esta sessão, modifique seu arquivo .bat como

@echo off
npm config set registry https://registry.npmjs.org/
@cmd.exe /K
rakesh
fonte
1
  1. Definir registro npm globalmente

    use o comando abaixo para modificar o arquivo de configuração .npmrc do usuário conectado

    npm config set registry <registry url>

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


  1. Definir escopo do registro npm

    Os escopos permitem agrupar pacotes relacionados juntos. Pacotes com escopo definido serão instalados em uma subpasta na pasta node_modules .

    Exemplo : node_modules / @ my-org / packagaename

    Para definir o registro do escopo, use: npm config set @my-org:registry http://example.reg-org.com

    Para instalar pacotes usando o escopo, use: npm install @my-org/mypackage

    sempre que você instalar pacotes do scope @ my-org, o npm procurará na configuração do registro vinculada ao scope @ my-org o URL do registro.


  1. Definir registro npm localmente para um projeto

    Para modificar o registro npm apenas para o projeto atual. crie um arquivo dentro da pasta raiz do projeto como.npmrc

    Adicione o conteúdo abaixo no arquivo

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

não use letras maiúsculas no seu pacote:

npm install --save uex

usa isto:

npm install --save vuex
Hamid Shariati
fonte
0

Talvez você não consiga alterar o registro do npm usando o .batarquivo como o Gntem apontou. Mas entendo que você precisa automatizar a alteração de registros. Você pode fazer isso .npmrcconfigurando seus arquivos em arquivos separados (por exemplo, npmrc_jfrog & npmrc_default ) e solicitando que seus .batarquivos executem a tarefa de cópia.

Por exemplo (no Windows): você default_registry.batterá

xcopy /y npmrc_default .npmrc

e sua jfrog_registry.batvontade terá

xcopy /y npmrc_jfrog .npmrc

Nota: /y suprime a solicitação para confirmar que você deseja substituir um arquivo de destino existente.

Isso garantirá que todas as propriedades de configuração ( registro, proxy, apiKeys etc. ) sejam copiadas para .npmrc.

Você pode ler mais sobre o xcopy aqui .

Srichakra
fonte