"npm config set registry https://registry.npmjs.org/" is not working in windows bat file

node.jsBatch FileNpm

node.js Problem Overview


I create a.bat on windows 7, the content of a.bat is:

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

and then run a.bat, but not working, I find the word "set" is special keyword for npm and bat, is there any methods to resolve this question?

node.js Solutions


Solution 1 - node.js

You shouldn't change the npm registry using .bat files. Instead try to use modify the .npmrc file which is the configuration for npm. The correct command for changing registry is

npm config set registry <registry url>

you can find more information with npm help config command, also check for privileges when and if you are running .bat files this way.

Solution 2 - node.js

We can also run npm install with registry options for multiple custom registry URLs.

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

Solution 3 - node.js

You can change using the .bat make sure you run the call command prior, hopefully this helps anyone in future making similar .bat commands

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

Solution 4 - node.js

On version 4.4.1, you can use:

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

Where @myco is your package scope. You can install package in this way:

npm install @myco/my-package

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

Solution 5 - node.js

  1. Set npm registry globally

    use the below command to modify the .npmrc config file for the logged in user

    npm config set registry <registry url>

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


  1. Set npm registry Scope

Scopes allow grouping of related packages together. Scoped packages will be installed in a sub-folder under node_modules folder.

Example: node_modules/@my-org/packagaename

To set the scope registry use: npm config set @my-org:registry http://example.reg-org.com

To install packages using scope use: npm install @my-org/mypackage

whenever you install any packages from scope @my-org npm will search in the registry setting linked to scope @my-org for the registry url.


  1. Set npm registry locally for a project

To modify the npm registry only for the current project. create a file inside the root folder of the project as .npmrc

Add the below contents in the file

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

Solution 6 - node.js

Probably I am too late to answer. But if anybody need it, following works fine, as I have used it a lot of times.

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

Solution 7 - node.js

On npm version 3.7.3

npm set registry=http://whatever/

Solution 8 - node.js

By executing your .bat you are setting config for only that session not globally. When you open and another cmd prompt and run npm install that config will not set for this session so modify your .bat file as

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

Solution 9 - node.js

2.name can no longer contain capital letters

don't use capital letters for your package:

npm install --save uex

use this:

npm install --save vuex

Solution 10 - node.js

You might not be able to change npm registry using .bat file as Gntem pointed out. But I understand that you need the ability to automate changing registries. You can do so by having your .npmrc configs in separate files (say npmrc_jfrog & npmrc_default) and have your .bat files do the copying task.

For example (in Windows): Your default_registry.bat will have

xcopy /y npmrc_default .npmrc

and your jfrog_registry.bat will have

xcopy /y npmrc_jfrog .npmrc

Note: /y suppresses prompting to confirm that you want to overwrite an existing destination file.

This will make sure that all the config properties (registry, proxy, apiKeys, etc.) get copied over to .npmrc.

You can read more about xcopy here.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionmopduanView Question on Stackoverflow
Solution 1 - node.jsGntemView Answer on Stackoverflow
Solution 2 - node.jsVenkat.RView Answer on Stackoverflow
Solution 3 - node.jsjsmartfoView Answer on Stackoverflow
Solution 4 - node.jsGilberto AlexandreView Answer on Stackoverflow
Solution 5 - node.jsIvix4uView Answer on Stackoverflow
Solution 6 - node.jsKavya RaniView Answer on Stackoverflow
Solution 7 - node.jsmadKakooView Answer on Stackoverflow
Solution 8 - node.jsrakeshView Answer on Stackoverflow
Solution 9 - node.jsHamid ShariatiView Answer on Stackoverflow
Solution 10 - node.jsSrichakraView Answer on Stackoverflow