关于npm私有包的上传流程

私服开源工具推荐

  1. Nexus
  2. Verdaccio

例子按照Verdaccio的步骤进行拆解

服务器上部署verdaccio和注册私服帐号

  1. linux centos 中安装 docker Verdaccio 的镜像,到dockerHub站点下载
  2. 配置 持久化进程守护的方式运行 verdaccio的服务
  3. verdaccio服务部署好后配置文件会返回一个web访问地址如:http://192.168.1.109:4873
  4. 先用浏览器访问下该网址,确保服务可以正常访问
  5. 网站首页不一定有新增用户的入口(我用的v4.12.2是没有找到)
  6. 这步开始提供一种创建npm私服帐号的方法(步骤如下)
  • 6.1 新建一个空文件夹
  • 6.2 执行npm init -y
  • 6.3 在当前文件夹下shell命令执行 npm adduser --registry=http://192.168.1.109:4873
  • 6.4 username: [新用戶名]
  • 6.5 password: [新密碼]
  • 6.6 会提示注册和登陆成功
  • 6.7 npm publish 上传测试下是否成功
  • 6.8 如果成功了,上传测试到这结束,如果失败看下什么原因有可能是403的一些错误

npm工具包的.npmrc文件配置详解

的作用是设置 npm 的行为和默认的选项 这里可以把私服的访问地址和私服帐号设置进去,这样每次发包的时候就方便多了

  • 配置参考如下:(.npmrc
@yh-hl:registry=http://192.168.1.109:4873/ # Verdaccio
email=marklow@126.com
always-auth=true
_auth="guest:H95sTgGHI0ua6"

Verdaccio私服帐号的信息如何查看获取

  1. docker ps
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE                             COMMAND                  CREATED             STATUS              PORTS                                            NAMES
6294fd19f092        verdaccio/verdaccio:4             "uid_entrypoint /bin…"   3 hours ago         Up 3 hours          0.0.0.0:4873->4873/tcp                           inspiring_yalow
6ed8324ed2bc        minio/minio                       "/usr/bin/docker-ent…"   4 weeks ago         Up 8 days           0.0.0.0:9000->9000/tcp                           minio
c9aa4f612175        kibana:7.3.2                      "/usr/local/bin/dumb…"   7 months ago        Up 8 days           0.0.0.0:5601->5601/tcp                           kibana
6473edbef510        elasticsearch:7.3.2               "/usr/local/bin/dock…"   7 months ago        Up 8 days           0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp   es
  1. docker exec -it 6294fd19f092 /bin/sh
  2. 切换到 root 根目录下 /
    ~ $ pwd
    /opt/verdaccio
    ~ $ cd /
  1. 如果之前步骤新用户新建成功的话,这时在 /verdaccio/storage 目录下会有 htpasswd 文件
  2. 打开 htpasswd 文件
  3. 出现如下内容:
   guest:H95sTgGHI0ua6:autocreated 2023-05-04T07:38:14.151Z
    ~
    ~
    ~
    ~
  1. 复制 guest:H95sTgGHI0ua6 粘贴至 .npmrc_auth参数上(H95sTgGHI0ua6 这个编码是由之前步骤注册用户的时候系统自动生成的,如果要自己生成则可以用 htpasswd工具进行生成后再添加至 /verdaccio/storage/htpasswd 文件内,保存后要重启docker的verdaccio服务)

npm包发包和发版详解

  1. 如我开发的fusion-cli这个包每次改动完后第1步提交改动至git仓库
  2. 如果是小改动则执行 npm version patch,其它版本号的迭代查看npm version --help
  3. 执行npm publish

存在的问题和补充内容

  1. 要先改动提交有commit记录了才能发包
  2. 发包前必须要修改npm版本号
  3. 工具包依赖的其它依赖要用npm i -S来安装,否则其它用户下载了这个包,执行的时候会少工具包相关的依赖,则运行错误
updatedupdated2023-06-092023-06-09