我正在使用两个NPM帐户:一个公共(public)帐户和一个私有(private)帐户。我将如何设置它,以免每次在其他帐户上发布模块时都不需要npm login

UPD:寻找NPM内置解决方案,因此没有shell脚本之类的东西

最佳答案

这就是我解决具有4个不同NPM登录名的方式。

  • 在每个项目的.gitignore(以及NPM模块的.npmignore)中添加以下行:.npmrc。这将确保您永远不会提交(或发布).npmrc文件。
  • 在每个项目的文件夹中创建包含以下内容的.npmrc文件://registry.npmjs.org/:_authToken=11111111-1111-1111-1111-111111111111(将GUID替换为实际的NPM身份验证 token ,例如,您可以从~/.npmrc抓取它)
  • npm CLI将在当前文件夹中查找.npmrc文件(或在任何文件夹中),并将其用于身份验证。

    结果,所有npm命令均按原样工作,无需传递--userconfig或其他任何内容。

    除上述内容外,您还可以在计算机/笔记本电脑上使用默认 NPM token 。
  • 确保.npmrc中不存在.gitignore(这对于大多数项目很常见)。
  • 在项目的根文件夹中创建.npmrc文件。放到里面://registry.npmjs.org/:_authToken=${NPM_TOKEN}。这将使npm使用NPM_TOKEN env。变种如果这样的环境,npm将中止。变种找不到。
  • 提交并推送该文件。 (是的,是的。)
  • 确保您的 shell 设置了NPM_TOKEN环境变量。例如。 NPM_TOKEN=11111111-1111-1111-1111-111111111111。我在~/.bash_profile中有它。

  • 提交了此文件的所有项目,都将使用环境变量NPM_TOKEN进行npm auth。

    结果,所有npm命令均按原样工作,无需传递--userconfig或其他任何内容。

    对于CI(连续集成)来说,这是足够好的和安全的。所有CI都允许您设置环境变量。使用这种方法,您可以通过一个简单的env来更改NPM用户。变种改变。

    专业提示

    键入npm whoami命令以检查文件夹中当前正在使用的 token 。

    09-25 17:34