Appearance
发布npm包
一、背景
最近主要负责搭建 前端部门 的 vue3 生态建设,有许多基础npm包需要发布到远程;
比如 eslint-config,vite-config,shared,cli 等基础库;
考虑选择发布npm私有包,好处主要两点:
- 安全,代码只保存在公司内网,不会泄露到外网;
- 下载速度快,不需要走外网,直接走内网,速度快;
二、私有仓库介绍
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 发包流程:
- 去对应的npm私服仓库注册账号(官方是
npmjs.com) - 准备好需要发布的包,配置好
package.json文件 npm login登录npm账号npm publish发布包到npm仓库
