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

mop*_*uan 162 batch-file node.js npm

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

@echo off
npm config set registry https://registry.npmjs.org/
Run Code Online (Sandbox Code Playgroud)

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

Gnt*_*tem 193

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

npm config set registry <registry url>

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

  • `config`部分不是必需的,可以运行`npm get registry`来查看你当前的,和`npm set registry https:// registry.npmjs.org /`将它设置回默认值. (5认同)
  • @MarcellodeSales 尝试`npm config set registry=&lt;registry url&gt;` (3认同)

Ven*_*t.R 67

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

npm install --registry=https://registry.npmjs.org/ 
npm install --registry=https://custom.npm.registry.com/ 
Run Code Online (Sandbox Code Playgroud)

  • 在为私有工件设置“.npmrc”时运行“npm install”会引起很多麻烦。这节省了我几个小时 (3认同)

jsm*_*tfo 52

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

call npm config set registry https://registry.npmjs.org/
Run Code Online (Sandbox Code Playgroud)

  • 多少次我复制粘贴这一行:) (10认同)
  • @Milad我不知道.您可能想要创建一个原子计数器并使用事件驱动系统来更新计数器.您可以使用分布式数据库来存储计数器,以便您的计数器具有高可用性. (7认同)

Gil*_*dre 16

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

npm config set @myco:registry http://reg.example.com
Run Code Online (Sandbox Code Playgroud)

@myco是你的包装范围.您可以这样安装包:

npm install @myco/my-package
Run Code Online (Sandbox Code Playgroud)

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


小智 12

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

npm config set registry=https://registry.npmjs.com/
Run Code Online (Sandbox Code Playgroud)


Ivi*_*x4u 10

  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/'
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你!我尝试过“npm config setregistry https://...”,但是当我执行“npm config getregistry”时,它返回“http://...”,问题是有人提交了`.nmprc` 和 `http://...` 的优先级高于全局配置。我花了大约 10 分钟直到我明白在你的帖子的帮助下发生了什么:) (3认同)

小智 6

在npm版本3.7.3

npm set registry=http://whatever/