NPM - 关于“电子邮件:(这是公开的)”的问题

Wen*_* Du 13 npm npm-cli npm-login

我已经在 上配置了电子邮件地址npmjs.com,为什么 cli 一直提示我输入电子邮件?

$ npm login
npm notice Log in on https://registry.npmjs.org/
Username: wenfangdu
Password:
Email: (this IS public)
Run Code Online (Sandbox Code Playgroud)

即使我输入的电子邮件与我设置的电子邮件不同npmjs.com,我仍然可以登录。

问题:

  • 输入这封电子邮件有什么意义?
  • npmjs.com如果我不输入此字段,它可以默认为我设置的电子邮件地址吗?

Wen*_* Du 15

这是登录和创建用户是同一请求时的产物。现在情况已不再如此,因此电子邮件字段将被忽略,除非使用给定密码以给定用户身份登录失败并出现错误指示该用户不存在。如果发生这种情况,npm 会发送一个请求来创建给定的用户并将其与给定的电子邮件关联起来。

npm 团队意识到这是技术债务,因为它login实际上是adduser. 不幸的是,改变这种行为将是一个破坏性的改变,并且需要 semver-major 版本的提升,所以我们直到 npm 8 才会看到这一点。