我在windows 7上创建了a.bat, a.bat的内容是:

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

然后运行a.bat,但没有工作,我发现“set”这个词是npm和bat的特殊关键字,有什么方法来解决这个问题吗?


当前回答

你可能无法像Gntem指出的那样使用.bat文件更改npm注册表。 但是我理解您需要自动更改注册中心的能力。 你可以通过将.npmrc配置放在单独的文件中(比如npmrc_jfrog和npmrc_default),并让你的.bat文件执行复制任务来做到这一点。

例如(在Windows中): default_registry.bat将拥有

xcopy /y npmrc_default .npmrc

你的jfrog_registry.bat会有

xcopy /y npmrc_jfrog .npmrc

注意:/y抑制了确认您想要覆盖现有目标文件的提示。

这将确保所有的配置属性(注册表,代理,apiKeys等)被复制到.npmrc。

你可以在这里阅读更多关于xcopy的内容。

其他回答

2.name can no longer contain capital letters

不要在包裹上使用大写字母:

npm install --save uex

用这个:

npm install --save vuex

在4.4.1版本中,您可以使用:

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

其中@myco是包的作用域。您可以通过以下方式安装package:

npm install @myco/my-package

裁判:https://docs.npmjs.com/misc/scope

你可能无法像Gntem指出的那样使用.bat文件更改npm注册表。 但是我理解您需要自动更改注册中心的能力。 你可以通过将.npmrc配置放在单独的文件中(比如npmrc_jfrog和npmrc_default),并让你的.bat文件执行复制任务来做到这一点。

例如(在Windows中): default_registry.bat将拥有

xcopy /y npmrc_default .npmrc

你的jfrog_registry.bat会有

xcopy /y npmrc_jfrog .npmrc

注意:/y抑制了确认您想要覆盖现有目标文件的提示。

这将确保所有的配置属性(注册表,代理,apiKeys等)被复制到.npmrc。

你可以在这里阅读更多关于xcopy的内容。

在npm 3.7.3版本上

NPM设置注册表=http://whatever/

也许我回答得太晚了。但是如果有人需要它,下面的工作很好,因为我已经用过很多次了。

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