我在windows 7上创建了a.bat, a.bat的内容是:
@echo off
npm config set registry https://registry.npmjs.org/
然后运行a.bat,但没有工作,我发现“set”这个词是npm和bat的特殊关键字,有什么方法来解决这个问题吗?
我在windows 7上创建了a.bat, a.bat的内容是:
@echo off
npm config set registry https://registry.npmjs.org/
然后运行a.bat,但没有工作,我发现“set”这个词是npm和bat的特殊关键字,有什么方法来解决这个问题吗?
当前回答
您可以使用.bat进行更改,确保您之前运行了call命令,希望这有助于将来使用类似的.bat命令的任何人
call npm config set registry https://registry.npmjs.org/
其他回答
你不应该使用.bat文件更改npm注册表。 相反,尝试使用修改npm的配置文件。npmrc。 更改注册表的正确命令是
NPM配置注册表<注册表url>
你可以通过NPM help config命令找到更多信息,当你运行。bat文件时,也可以通过这种方式检查权限。
在npm 3.7.3版本上
NPM设置注册表=http://whatever/
你可能无法像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的内容。
通过执行.bat,你只是在为该会话设置配置,而不是全局的。当你打开另一个cmd提示符并运行npm时,安装该配置将不会为此会话设置,因此将你的.bat文件修改为
@echo off
npm config set registry https://registry.npmjs.org/
@cmd.exe /K
在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