如何在纱线中指定本地注册表?
How to specify local registry in yarn?
我有一个本地的nexus服务器,我希望yarn在上线之前看一下,基本上prefer-offline
yarn install \
--prefer-offline \
--cache-folder C:\folder\yarn-cache \
--preferred-cache-folder C:\folder\yarn-cache \
--non-interactive \
--no-lockfile \
--registry http://server/repository/npm-group
Yarn 离线找不到依赖然后上线失败。不知道能不能解决。
- 创建一个 npm(托管) 存储库以用作您的私有注册表。
我相信你已经做到了。
- 创建一个 npm(代理)
指向您选择的外部存储库的存储库
(https://registry.yarnpkg.com or https://registry.npmjs.org/).
- 创建一个 npm(组),将您的私有注册表放在第一位,将代理注册表放在第二位。
- 将 yarn 指向您的组存储库:
yarn config set registry http://nexus.local/repository/npm-group/
。如果您的 Nexus 配置需要,请验证 yarn:yarn login
.
还要警惕 yarn 使用任何 npm 配置,你可能拥有自己的配置:https://github.com/yarnpkg/yarn/issues/4862
Yarn v2+ 更新:
Yarn v2+ 使用不同的配置密钥来更新 NPM 注册表,称为 npmRegistryServer(有关详细信息,请参阅其 Migration 页面):
yarn config set npmRegistryServer http://nexus.local/repository/npm-group/
您可以使用以下命令在 yarn 中设置不同的注册表:
yarn config set registry <url-to-your-registry>
通过键入以下命令验证是否已设置:
yarn config get registry
对于注册表中的一次性更改,您可以像这样使用变量 YARN_REGISTRY
:
YARN_REGISTRY="<url-to-your-registry>" yarn config get registry
或
YARN_REGISTRY="<url-to-your-registry>" yarn publish
注意!
如果您在 package.json
中定义 publishConfig.registry
:
"publishConfig": {
"registry": "https://registry.npmjs.org"
},
它将仍然覆盖 注册表,即使 --registry
参数被提供给 yarn publish
!
您可以使用 .yarnrc
文件并添加 registry "<your repo URL>"
参考 - yarnrc
另外不要忘记在更改注册表后重新生成 yarn.lock 文件。这是必要的,因为 yarn.lock 包含指向旧注册表的链接,并将尝试从该链接安装依赖项。
我有一个本地的nexus服务器,我希望yarn在上线之前看一下,基本上prefer-offline
yarn install \
--prefer-offline \
--cache-folder C:\folder\yarn-cache \
--preferred-cache-folder C:\folder\yarn-cache \
--non-interactive \
--no-lockfile \
--registry http://server/repository/npm-group
Yarn 离线找不到依赖然后上线失败。不知道能不能解决。
- 创建一个 npm(托管) 存储库以用作您的私有注册表。 我相信你已经做到了。
- 创建一个 npm(代理) 指向您选择的外部存储库的存储库 (https://registry.yarnpkg.com or https://registry.npmjs.org/).
- 创建一个 npm(组),将您的私有注册表放在第一位,将代理注册表放在第二位。
- 将 yarn 指向您的组存储库:
yarn config set registry http://nexus.local/repository/npm-group/
。如果您的 Nexus 配置需要,请验证 yarn:yarn login
.
还要警惕 yarn 使用任何 npm 配置,你可能拥有自己的配置:https://github.com/yarnpkg/yarn/issues/4862
Yarn v2+ 更新:
Yarn v2+ 使用不同的配置密钥来更新 NPM 注册表,称为 npmRegistryServer(有关详细信息,请参阅其 Migration 页面):
yarn config set npmRegistryServer http://nexus.local/repository/npm-group/
您可以使用以下命令在 yarn 中设置不同的注册表:
yarn config set registry <url-to-your-registry>
通过键入以下命令验证是否已设置:
yarn config get registry
对于注册表中的一次性更改,您可以像这样使用变量 YARN_REGISTRY
:
YARN_REGISTRY="<url-to-your-registry>" yarn config get registry
或
YARN_REGISTRY="<url-to-your-registry>" yarn publish
注意!
如果您在 package.json
中定义 publishConfig.registry
:
"publishConfig": {
"registry": "https://registry.npmjs.org"
},
它将仍然覆盖 注册表,即使 --registry
参数被提供给 yarn publish
!
您可以使用 .yarnrc
文件并添加 registry "<your repo URL>"
参考 - yarnrc
另外不要忘记在更改注册表后重新生成 yarn.lock 文件。这是必要的,因为 yarn.lock 包含指向旧注册表的链接,并将尝试从该链接安装依赖项。