我正在使用Gem Fury作为我们的一些私人套餐。我将yarn注册表设置为将其代理用于public和我们的私有节点模块:
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
文件?
答案 0 :(得分:3)
尝试按照Gem Fury documentation中的说明设置npm
。
关键部分是将always-auth
设置为true
并使用npm login
如果这不起作用,那么您可以使用Git
pre-commit hooks,当更改提交到yarn.lock
存储库时,将Git
删除凭据。
答案 1 :(得分: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}