运行yarn时,将使用bash中的私有令牌生成yarn.lock文件

问题描述 投票:14回答:2

我正在使用Gem Fury作为我们的一些私人套餐。我将yarn注册表设置为使用它们的代理用于public和我们的私有节点模块:

yarn config set registry "https://npm-proxy.fury.io/$GEMFURY_TOKEN/username"

GEMFURY_TOKEN位于.bashyarn config get registry产生:

https://npm-proxy.fury.io/$(GEMFURY_TOKEN)/username

当我们运行yarn时,yarn.lock文件将生成以下内容:

[email protected]:
  version "0.1.0"
  resolved "https://npm.fury.io/username/private-module/-/0.1.0.tgz?auth=<GEMFURY TOKEN>"
  dependencies:
    ember-cli-babel "^5.1.6"

[email protected]:
  version "0.1.4"
  resolved "https://npm.fury.io/username/private-module-2/-/0.1.4.tgz?auth=<GEMFURY TOKEN>"
  dependencies:
    ember-cli-babel "^5.1.6"
    ember-inflector "^1.9.6"

我不想在git存储库中使用私有令牌。有没有办法可以将令牌排除在生成时添加到yarn.lock文件中?

npm yarnpkg gem-fury
2个回答
3
投票

尝试按照npm中的描述设置Gem Fury documentation。关键部分是将always-auth设置为true并使用npm login

如果这没有用,那么您可以使用Git pre-commit hooks,当更改提交到yarn.lock存储库时,将从Git中删除凭据。


1
投票

我们最近解决了这个问题,但Gemfury文档并没有真正说明问题。如果您需要拉动或推入您的CI构建,那么我认为您不应该使用npm login,因为这将修改您的家庭.npmrc,这不是很有帮助。我们发现您需要做的就是更改项目的.npmrc以使用共享组织帐户。这样,您可以控制项目的.npmrc版本,以便您的开发人员和CI服务器可以从同一注册表URL中读取,同时保持锁定文件无令牌:

@MY_ORG:registry=https://npm-proxy.fury.io/MY_ORG/
always-auth=true
//npm-proxy.fury.io/MY_ORG/:_authToken=${GEMFURY_TOKEN}
© www.soinside.com 2019 - 2024. All rights reserved.