Skip to content

发布npm包

一、背景

最近主要负责搭建 前端部门vue3 生态建设,有许多基础npm包需要发布到远程;

比如 eslint-config,vite-config,sharedcli 等基础库;

考虑选择发布npm私有包,好处主要两点:

  1. 安全,代码只保存在公司内网,不会泄露到外网;
  2. 下载速度快,不需要走外网,直接走内网,速度快;

二、私有仓库介绍

npm 私服仓库本质是一个npm仓库,只不过是在内网环境下搭建的;

常用的私服仓库有:

  • verdaccio : 轻量级的私有 npm 仓库(fork 自 sinopia),无需依赖外部数据库;
  • sinopia: 轻量级的私有 npm 仓库,完全用 JavaScript 实现,无需依赖外部数据库;
  • cnpmjs: 淘宝团队私有 npm 仓库,支持离线安装、缓存、代理等功能;
  • nexus : 强大的仓库管理器,支持多包管理,包括 Docker、Maven、npm、PyPI 等;
  • artifactory : 企业级的 仓库管理器 ,支持多包管理,包括 Docker、Maven、npm、PyPI等;

我们看公司原来已经搭建了 nexus 仓库,只是我们前端没有在内网拓展开来,基本是直接发布到外网,同步到内网;

索性我和运维沟通,讨论一种内部npm私有仓库的发包规范,分享给大家,希望对各位大佬有所帮助;

三、 发包流程

1. 正常发包流程

我们回顾下大致的 npm 发包流程:

  1. 去对应的npm私服仓库注册账号(官方是npmjs.com)
  2. 准备好需要发布的包,配置好 package.json 文件
  3. npm login 登录npm账号
  4. npm publish 发布包到npm仓库

Released under the MIT License.