我有一个项目,我们使用字体awesome 5库。我按照这里写的说明,用我的auth令牌添加了一个.npmrc文件。这是一个安全的行为,把它放在一个回购协议?我希望开发人员有访问它,但如果回购协议公开,我们可能会暴露令牌。在这种情况下,最佳做法是什么?
.npmrc
pqwbnv8z1#
这个答案仍然值得怀疑--见下面的评论。我再也无法访问私人($paid)npm账户了,所以我再也不能通过测试来回答问题了。也许试试"konyak的回答"。将令牌放入任何git检查过的文件(包括. npmrc)绝对不是安全的行为。以下是您的团队可以采取的安全利用npm令牌的步骤。需要考虑两种不同的环境:1.每个开发人员的本地dev计算机1.应用程序的部署平台
按照您在问题中链接到的全球设置说明进行操作并不是解决方案。创建类似于"Per project"说明的. npmrc文件,但用变量名替换真实令牌,前缀为$。即:
$
@fontawesome:registry=https://npm.fontawesome.com/ //npm.fontawesome.com/:_authToken=$TOKEN
npm将检测名为.env的环境变量文件。因此,在.gitignore d. env文件中,添加您的密钥值对,即:
.env
.gitignore
TOKEN=ABC123
根据npm-config文档,您还可以在变量名前加上"NPM_CONFIG_"前缀,即:
npm-config
NPM_CONFIG_TOKEN=ABC123
现在,当dev运行npm i时,font-awesome依赖项将从私有repo加载。
npm i
一个三个三个一个
执行上述本地开发部分中的所有步骤,以及:
如果您的应用主机是Netlify,请参阅其构建环境变量文档。
vlurs2pr2#
https://docs.npmjs.com/using-private-packages-in-a-ci-cd-workflow将机密令牌导出到会话中,例如export NPM_TOKEN="00000000-0000-0000-0000-000000000000"在您的~/.npmrc中,添加//registry.npmjs.org/:_authToken=${NPM_TOKEN}
export NPM_TOKEN="00000000-0000-0000-0000-000000000000"
~/.npmrc
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
vmdwslir3#
我将相关的config行和标记放在主目录下的.npmrc文件中,然后可以使用filesystem / OS权限来保护它,避免意外地将它签入到源代码管理中,NPM将自动读取它,而无需您采取进一步的操作。在项目目录中,我们有.npmrc,它只包含一个作用域注册表声明(@fontawesome:registry=https://npm.fontawesome.com/),还有一个单独的ci.npmrc,它包含作用域注册表声明和变量替换authToken赋值:
@fontawesome:registry=https://npm.fontawesome.com/
ci.npmrc
@fontawesome:registry=https://npm.fontawesome.com/ //npm.fontawesome.com/:_authToken=$FONTAWESOME_NPM_TOKEN
CI构建作业只需在使用npm执行任何操作之前将.npmrc替换为ci.npmrc,并使用分配给适当服务帐户的auth令牌设置一个秘密环境变量。
npm
3条答案
按热度按时间pqwbnv8z1#
这个答案仍然值得怀疑--见下面的评论。我再也无法访问私人($paid)npm账户了,所以我再也不能通过测试来回答问题了。
也许试试"konyak的回答"。
将令牌放入任何git检查过的文件(包括. npmrc)绝对不是安全的行为。
以下是您的团队可以采取的安全利用npm令牌的步骤。
需要考虑两种不同的环境:
1.每个开发人员的本地dev计算机
1.应用程序的部署平台
本地开发
按照您在问题中链接到的全球设置说明进行操作并不是解决方案。
创建类似于"Per project"说明的. npmrc文件,但用变量名替换真实令牌,前缀为
$
。即:npm将检测名为
.env
的环境变量文件。因此,在.gitignore
d. env文件中,添加您的密钥值对,即:根据
npm-config
文档,您还可以在变量名前加上"NPM_CONFIG_"前缀,即:现在,当dev运行
npm i
时,font-awesome依赖项将从私有repo加载。一个三个三个一个
应用程序部署平台
执行上述本地开发部分中的所有步骤,以及:
如果您的应用主机是Netlify,请参阅其构建环境变量文档。
vlurs2pr2#
https://docs.npmjs.com/using-private-packages-in-a-ci-cd-workflow
将机密令牌导出到会话中,例如
export NPM_TOKEN="00000000-0000-0000-0000-000000000000"
在您的
~/.npmrc
中,添加//registry.npmjs.org/:_authToken=${NPM_TOKEN}
vmdwslir3#
我将相关的config行和标记放在主目录下的
.npmrc
文件中,然后可以使用filesystem / OS权限来保护它,避免意外地将它签入到源代码管理中,NPM将自动读取它,而无需您采取进一步的操作。在项目目录中,我们有
.npmrc
,它只包含一个作用域注册表声明(@fontawesome:registry=https://npm.fontawesome.com/
),还有一个单独的ci.npmrc
,它包含作用域注册表声明和变量替换authToken赋值:CI构建作业只需在使用
npm
执行任何操作之前将.npmrc
替换为ci.npmrc
,并使用分配给适当服务帐户的auth令牌设置一个秘密环境变量。