• 整理一下在 npmjs.com 上面发布资源包踩过的坑


    正常流程就不说了,网上有很多,比如写代码、打包、注册、登录、发布等。

    邮箱要激活

    在 npmjs.com 上面注册账号的时候需要填写邮箱,然后登录网址的时候并没有强制要求你去邮箱激活。

    但是到了发布资源包的时候,如果还没有去邮箱激活的话,就会报错。

    具体出错信息记不清了,好像有 email 的字样。反正总之,先到邮箱里看看,找到npmjs.com 发的那封邮件,按照要求操作一下,就可以了。

    不能和现有的资源包重名。

    npmjs.com 上面的资源包的名称,按照先下手为强的原则,我先用这个名称发布了,那么这个名称就是我的,别人就不能用。所以想到了好名字,要先去占个坑。

    版本号要更新。

    每次发布的时候,版本号都需要升级一下,否则会报错。

    OTP、Modify 2FA

    发第一个包的时候,登录后(验证账号和密码)就可以发布了,但是当我发布第二个包的时候却报错了。

    折腾了半天终于弄明白了,原理 npmjs.com 感觉只验证用户名和密码不够安全,怕被盗号,所以又加了一道锁。

    这道锁类似于银行的U盾,当然不需要我们弄硬件设备,只需要在手机里面下载一个APP,然后扫 npmjs.com 里面的一个二维码,然后绑定上即可。

    之后再做关键性操作的时候,就需要打开手机APP,找到六位验证码,输入后即可。比如登录、发布资源包等操作。

    TLS1.2、E426、https

    十月初发布资源包,又出现 E426 的错误,郁闷。

    npm ERR! code E426
    npm ERR! 426 Upgrade Required - PUT http://registry.npmjs.org/nf-state
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     C:Usersjyk00AppDataLocal
    pm-cache\_logs2021-10-08T04_52_56_113Z-debug.log
    

    这次又是一次安全级别的提升,以前要求比较宽泛,现在要求更严格了,需要采用TLS1.2 的方式来发布。

    然后找资料吧,各种找,一个比一个专业,比如升级 npm 的版本云云。但是还是报E426的错误。

    最后在一次刷知乎的时候,终于找到了原因,就是修改 registry 的时候要使用 https。之前用的是http。

    npm config set registry=https://registry.npmjs.org
    

    想一想还是自己的错,一个是基础知识不扎实,不知道 TLS 和 https 是啥关系,另外出错信息也没有仔细看,或者说,因为看不懂而忽略了重要信息。

  • 相关阅读:
    PAT 1097. Deduplication on a Linked List (链表)
    PAT 1096. Consecutive Factors
    PAT 1095. Cars on Campus
    PAT 1094. The Largest Generation (层级遍历)
    PAT 1093. Count PAT's
    PAT 1092. To Buy or Not to Buy
    PAT 1091. Acute Stroke (bfs)
    CSS:word-wrap/overflow/transition
    node-webkit中的requirejs报错问题:path must be a string error in Require.js
    script加载之defer和async
  • 原文地址:https://www.cnblogs.com/jyk/p/15458879.html
Copyright © 2020-2023  润新知