"Npm config set register https://registry.npmjs.org/" non funziona nel file bat di Windows


193

Creo a.bat su Windows 7, il contenuto di a.bat è:

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

e quindi eseguo a.bat, ma non funziona, trovo che la parola "set" sia una parola chiave speciale per npm e bat, ci sono metodi per risolvere questa domanda?


296
Qualcun altro arriva a questo post ogni volta che vuole vedere qual è l'URL del registro npm? haha
kevingilbert100

9
Cordiali saluti: Avevo bisogno della versione .com del registro: cioè https://registry.npmjs.com/piuttosto chehttps://registry.npmjs.org/
infl3x

@ infl3x perché? quali sono le differenze?
htho,

7
@ kevingilbert100 npm config get registryper conoscere l'URL del registro di sistema
Sridhar

2
@Sridhar Nope. Ciò fornisce solo il registro set corrente, non il registro npm "ufficiale".
Emobe

Risposte:


224

Non è necessario modificare il registro npm utilizzando i .batfile. Prova invece a utilizzare modifica il .npmrcfile per cui è configurata npm. Il comando corretto per cambiare registro è

npm config set registry <registry url>

puoi trovare maggiori informazioni con il npm help configcomando, controlla anche i privilegi quando e se stai eseguendo i .batfile in questo modo.


potrebbe essere il metodo che ho usato non è adatto alla mia domanda, ma comunque grazie per la tua risposta :)
mopduan

2
@MarcellodeSales trynpm config set registry=<registry url>
L1fescape

7
La configparte non è necessaria, può essere eseguita solo npm get registryper visualizzare la tua corrente e npm set registry https://registry.npmjs.org/ripristinarla al valore predefinito.
AlecRust,

è possibile configurare il registro npm <cartella node_modules locale>. Se non voglio scaricare nulla da Internet e tutti gli artefatti sono all'interno dell'app.
sumit sachdeva,

85

Possiamo anche eseguire npm install con registryopzioni per più URL di registro personalizzati.

npm install --registry=https://registry.npmjs.org/ 
npm install --registry=https://custom.npm.registry.com/ 

1
Lo sto cercando da molto tempo. Grazie per aver condiviso!
falsarella,

1
signore, sei un salvatore.
Raj Gupta,

56

Puoi cambiare usando il .bat assicurati di eseguire prima il comando call, speriamo che questo possa aiutare chiunque in futuro a fare simili comandi .bat

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

7
@Milad Non lo so. Potresti voler creare un contatore atomico e utilizzare il sistema event driven per aggiornare il contatore. È possibile utilizzare un database distribuito per archiviare il contatore in modo che il contatore sia altamente disponibile.
prayagupd,

19

Nella versione 4.4.1, è possibile utilizzare:

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

Dove @myco è l'ambito del pacchetto. È possibile installare il pacchetto in questo modo:

npm install @myco/my-package

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


15

Probabilmente sono troppo tardi per rispondere. Ma se qualcuno ne ha bisogno, seguire funziona bene, visto che l'ho usato molte volte.

npm config set registry=https://registry.npmjs.com/

5

Su npm versione 3.7.3

npm set registry=http://whatever/


2

Eseguendo il tuo .bat stai impostando la configurazione solo per quella sessione non a livello globale. Quando si apre e un altro cmd richiede ed esegue npm installquella configurazione non verrà impostata per questa sessione, quindi modificare il file .bat come

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

1
  1. Imposta il registro npm a livello globale

    utilizzare il comando seguente per modificare il file di configurazione .npmrc per l'utente che ha effettuato l'accesso

    npm config set registry <registry url>

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


  1. Imposta l'ambito del registro npm

    Gli ambiti consentono il raggruppamento di pacchetti correlati insieme. I pacchetti con ambito verranno installati in una sottocartella nella cartella node_modules .

    Esempio : node_modules / @ my-org / nomepacchetto

    Per impostare il registro dell'ambito utilizzare: npm config set @my-org:registry http://example.reg-org.com

    Per installare i pacchetti utilizzando scope usare: npm install @my-org/mypackage

    ogni volta che si installano pacchetti da scope @ my-org npm cercherà nelle impostazioni del registro collegate a scope @ my-org l'URL del registro.


  1. Impostare il registro npm localmente per un progetto

    Per modificare il registro npm solo per il progetto corrente. crea un file nella cartella principale del progetto come.npmrc

    Aggiungi i seguenti contenuti nel file

   registry = 'https://registry.npmjs.org/'

0
2.name can no longer contain capital letters

non usare lettere maiuscole per il pacchetto:

npm install --save uex

Usa questo:

npm install --save vuex

0

Potresti non essere in grado di cambiare il registro di npm usando il .batfile come ha sottolineato Gntem . Ma capisco che hai bisogno della capacità di automatizzare la modifica dei registri. Puoi farlo avendo le tue .npmrcconfigurazioni in file separati (ad esempio npmrc_jfrog e npmrc_default ) e fare in modo che i tuoi file eseguano.bat l'operazione di copia.

Per esempio (in Windows): Il tuo default_registry.batavranno

xcopy /y npmrc_default .npmrc

e il tuo jfrog_registry.batavrà

xcopy /y npmrc_jfrog .npmrc

Nota: /y elimina la richiesta di confermare che si desidera sovrascrivere un file di destinazione esistente.

Ciò assicurerà che tutte le proprietà di configurazione ( registro, proxy, apiKeys, ecc. ) Vengano copiate .npmrc.

Puoi leggere di più su xcopy qui .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.