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?
This question is related to
node.js
batch-file
npm
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/
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.
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/'
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
On npm version 3.7.3
npm set registry=http://whatever/
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/
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
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/
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
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/
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.
Source: Stackoverflow.com