乐闻世界logo
搜索文章和话题

How do I use multiple npm registries in Yarn?

1个答案

1

In everyday development, due to network issues or specific requirements, we might need to configure multiple npm registries. When using Yarn, we can achieve this requirement through several methods. Below are detailed steps and examples for each method:

1. Configure Using .yarnrc or .npmrc Files

We can create a .yarnrc file in the root directory of the project and specify different registries within it. For example, if we need to use a private registry for packages prefixed with @myCompany, we can configure it as follows:

shell
"@myCompany:registry" "https://registry.mycompany.com"

This configuration instructs Yarn to fetch all packages prefixed with @myCompany from https://registry.mycompany.com.

2. Specify Registry via Command Line

If we only need to temporarily switch the registry, we can specify it during package installation:

bash
yarn add lodash --registry https://registry.npm.taobao.org

This command installs the lodash package from the Taobao npm mirror https://registry.npm.taobao.org without affecting the registry sources for other packages.

3. Use Environment Variables

We can also specify the registry using environment variables. For example, on Unix-like systems, use the following command:

bash
export NPM_CONFIG_REGISTRY=https://registry.npmjs.org

Then run Yarn commands; all packages will default to using https://registry.npmjs.org as the source for installation.

Example - Real-World Scenario

Suppose I work at a company where we have a private npm registry for internal packages, while public packages are still installed from the official npm registry. I would configure the .yarnrc file as follows:

shell
"@company:registry" "https://npm.company.com" registry "https://registry.npmjs.org"

With this configuration, all packages prefixed with @company will be fetched from our company's private registry, while other standard packages continue to be installed from the official npm registry.

By using the above methods, we can flexibly utilize multiple npm registries within a single project to accommodate various requirements and environments. This is particularly important in large projects and multi-environment development.

2024年6月29日 12:07 回复

你的答案