16

我将 Gem Fury 用于我们的一些私人包。我将纱线注册表设置为将它们的代理用于公共和我们的私有节点模块:

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

GEMFURY_TOKEN设置在.bash. yarn config get registry产生:

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

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

private-module@0.1.0:
  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"

private-module-2@0.1.4:
  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在生成时排除令牌添加到文件中?

4

2 回答 2

3

尝试npm按照Gem Fury 文档中的说明进行设置。关键部分是设置always-authtrue使用npm login

如果这没有帮助,那么您可以使用Git 预提交挂钩yarn.lock,当更改提交到存储库时,该挂钩将删除凭据Git

于 2018-03-09T10:19:51.787 回答
1

我们最近解决了这个问题,但 Gemfury 文档并没有真正说明这一点。如果您需要拉入或推动您的 CI 构建,那么我认为您不应该使用npm login它,因为这会修改您的 home .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}
于 2019-03-21T21:04:01.420 回答