“npm config set registry https://registry.npmjs.org/”在Windows bat文件中不起作用

时间:2014-03-13 16:34:19

标签: node.js batch-file npm

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

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

然后运行a.bat,但不工作,我找到了" set"是npm和bat的特殊关键字,有什么方法可以解决这个问题吗?

11 个答案:

答案 0 :(得分:174)

您不应使用.bat文件更改npm注册表。 而是尝试使用修改.npmrc文件,这是npm的配置。 更改注册表的正确命令是

npm config set registry <registry url>

您可以使用npm help config命令查找更多信息,同时检查以何种方式运行.bat文件的权限。

答案 1 :(得分:48)

您可以使用.bat进行更改,确保先运行call命令,希望这有助于将来制作类似的.bat命令

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

答案 2 :(得分:48)

我们还可以使用registry选项为多个自定义注册表URL运行npm install。

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

答案 3 :(得分:14)

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

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

@myco是您的包装范围。您可以通过以下方式安装软件包:

npm install @myco/my-package

参考:https://docs.npmjs.com/misc/scope

答案 4 :(得分:8)

可能我来不及回答。但是,如果有人需要它,下面的工作正常,因为我已经使用了很多次。

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

答案 5 :(得分:6)

关于npm版本3.7.3

npm set registry=http://whatever/

答案 6 :(得分:4)

  1. 全局设置npm注册表

    使用以下命令为登录用户修改.npmrc配置文件

    npm config set registry <registry url>

    示例: npm config set registry https://registry.npmjs.org/


  1. 设置npm注册表范围

    范围允许将相关软件包组合在一起。范围内的软件包将安装在 node_modules 文件夹下的子文件夹中。

    示例 node_modules / @ my-org / packagaename

    要设置范围注册表,请使用:npm config set @my-org:registry http://example.reg-org.com

    要使用范围安装软件包,请使用:npm install @my-org/mypackage

    无论何时从范围 @ my-org 安装任何软件包,npm都会在链接到范围 @ my-org 的注册表设置中搜索注册表URL。


  1. 在本地为项目设置npm注册表

    仅针对当前项目修改npm注册表。在项目的根文件夹中创建一个.npmrc

    文件

    在文件中添加以下内容

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

答案 7 :(得分:2)

通过执行.bat,您只为该会话设置全局配置。当您打开另一个cmd提示并运行npm install时,该配置将不会为此会话设置,因此请将.bat文件修改为

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

答案 8 :(得分:0)

2.name can no longer contain capital letters

请勿在包裹中使用大写字母:

npm install --save uex

使用此:

npm install --save vuex

答案 9 :(得分:0)

您可能无法使用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 here的更多信息。

答案 10 :(得分:-3)

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

将在您的.npmrc配置文件中添加一行“ registry = https://registry.npmjs.com/