我在windows 7上创建了a.bat,a.bat的内容是:
@echo off
npm config set registry https://registry.npmjs.org/
然后运行.bat,但不起作用,我发现"set"这个词是npm和bat的特殊关键字,有什么方法可以解决这个问题吗?
您不应该使用.bat
文件更改npm注册表。而是尝试使用修改.npmrc
文件,该文件是npm
的配置。更改注册表的正确命令是
npm config set registry <registry url>
您可以通过npm help config
命令找到更多信息,还可以检查以这种方式运行.bat
文件的时间和权限。
我们还可以为多个自定义注册表URL运行带有registry
选项的npm安装。
npm install --registry=https://registry.npmjs.org/
npm install --registry=https://custom.npm.registry.com/
您可以使用.bat进行更改,确保您之前运行了调用命令,希望这能帮助将来的任何人制作类似的.bat命令
call npm config set registry https://registry.npmjs.org/
在4.4.1版本上,您可以使用:
npm config set @myco:registry=http://reg.example.com
其中@myco是您的包范围。你可以用这种方式安装软件包:
npm install @myco/my-package
参考:https://docs.npmjs.com/misc/scope
-
全局设置npm注册表
使用以下命令修改已登录用户的.npmrc配置文件
npm config set registry <registry url>
示例:
npm config set registry https://registry.npmjs.org/
-
设置npm注册表范围
作用域允许将相关包分组在一起。作用域软件包将安装在node_modules文件夹下的子文件夹中。
示例:node_modules/@my-org/packageename
要设置作用域注册表,请使用:
npm config set @my-org:registry http://example.reg-org.com
要使用作用域安装软件包,请使用:
npm install @my-org/mypackage
每当您从scope@my-org安装任何软件包时,npm都会在链接到scope@my-org的注册表设置中搜索注册表url。
-
为项目在本地设置npm注册表
仅为当前项目修改npm注册表。在项目的根文件夹中创建一个文件作为
.npmrc
在文件中添加以下内容
registry = 'https://registry.npmjs.org/'
可能我来不及回答了。但如果有人需要它,下面的操作很好,因为我已经用了很多次了。
npm config set registry=https://registry.npmjs.com/
在npm 3.7.3版上
npm set registry=http://whatever/
通过执行.bat,您只为该会话而不是全局设置配置。当您打开和另一个cmd提示符并运行npm install
时,配置不会为此会话设置,因此将.bat文件修改为
@echo off
npm config set registry https://registry.npmjs.org/
@cmd.exe /K
2.name can no longer contain capital letters
包裹不要使用大写字母:
npm install --save uex
使用这个:
npm install --save vuex
正如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的信息。