背景
我们在学习的时候,看教程,查资料,有的步骤看起来很顺,但是实际操作起来,会发现好像没那么简单,这里就记录下 npm login的问题
起因
学习发包的时候,发现发包很简单,就2行命令
- 在cmd终端输入
npm login, 进行登录 - 登录成功之后,然后进入你要发布的包的路径中,输入
npm publish
然后我就死在了第一步 npm login
记录过程
- 按照要求,把本地npm的源 改成 npm官方源
npm config set registry https://registry.npmjs.org/
这个我也改了,但是报错超时
- 网上查问题,说要设置一个
proxy的代理,用科学上网的代理地址才行,人家说能行
npm config set proxy 你的代理地址
我当时这个代理地址也找了老半天,不会弄,后来好说歹说弄上去了。输入用户名的显示出来了
我兴冲冲的输入了用户名,密码,邮件,一回车,好家伙,又报了个 405 方法不被允许
- 网上再查资料,说还要设置一个
https-proxy的代理
npm config set https-proxy 你的代理地址
发现还是失败
最后的最后
重启电脑,打开 科学上网,输入 npm login 报了一堆错 (这张图忘记截了)
我恼火了,关掉科学上网,把之前的代理 设置为空
执行下面命令
npm config set proxy null
npm config set https-proxy null
这个时候,出来了 Username
然后我取消了,重新输入 npm login 这次有成功了
然后我去发包,执行 npm publish, 没有科学上网,一直都在打转,一直都没有成功,这次,我索性,打开了科学上网,唉,一下子就推送上去了。离谱!!!
后记
我后来又要更新包,这次我发现,发包,除了一开始,把本地的源 设置成 npm的官方源,后续操作其实和科学上网关系不大。
因为我后续更新包,一来没有设置代理,二来也没有开科学上网,最后还是成功了,借用参考文章中的一句话,npm发包真的是跟你本地的网络有关系,和科学上网没啥关系。