前端工程化(四)私有npm仓库解决方案

  • 为什么需要私有npm仓库?
    随着项目增多,会有很多复用的业务组件或者功能,完全可以将这些封装成包进行复用,避免重复造轮子(例如脚手架等)。如果公司处于隐私保护的目的,不想将封装好的包推送到npm社区,但又需要一套完整的包管理工具来对他们进行管理,方便公司内部开发人员使用。所有有必要创建私有的npm仓库。

  • 主流私有npm仓库搭建方案:

    • 购买npm付费账号:
      只要是npm付费用户,都可以下载和发布不限量的私有包。npm会校验账号是不是付费的,只要是就可以发布私有包。费用是7美金/月。
    • 使用verdaccio:
      verdaccio之前要说明一下sinopia,sinopia最初是搭建私有npm的选择,不过已经很多年不维护了,很多bug也没有解决,只能自己修改源码去解决。
      verdaccio是node.js创建的轻量的私有npm代理注册表(npm proxy registry),verdaccio是sinopia1.4版本的一个forked,100%向后兼容,并且一直在维护中。
      它的特点就是简单易用,轻量型的私有npm管理工具,不需要额外的数据库配置,内部自带小型数据库,支持私有包管理的同时也支持缓存使用过的公共包,发布及缓存的包以静态资源的形式本地存储(自己搭建的npm服务器,由于可以缓存常用的包,能够节省时间,cnpm有一些包存在路径问题,npm的速度会很慢),支持静态配置型用户管理机制,可以进行权限设置。
    • 使用cnpmjs.org:
      淘宝的cnpm开源,cnpmjs.org可以提供公共包镜像更新以及私有包管理,支持拓展多种存储形式,相对数据库的配置较多,部署过程要比verdaccio复杂很多,维护成本也较高,但相对的也提供更高的拓展性,可以支持多种业务场景,适合大型公司搭建内部私有npm仓库的方案。
  • verdaccio部署流程以及需要解决的问题

    • 全局安装verdaccio (npm install –global verdaccio)
    • verdaccio启动运行
      在这里插入图片描述
      config.yaml是默认的配置文件,4873是默认的端口,可以通过修改配置文件来进行配置
      前端工程化(四)私有npm仓库解决方案_第1张图片
      用户信息配置目录:./htpasswd 密码是被加密过的,是简单的SHA1哈稀之后再转换成 Base64。
  • UI界面:
    前端工程化(四)私有npm仓库解决方案_第2张图片
    可以看到所有已发布的私有包,可以查看依赖、版本、说明、发布时间等信息。
    前端工程化(四)私有npm仓库解决方案_第3张图片除了直接安装使用,也可以对代码进行二次开发,license都是MIT。后端工程是nodejs实现的,前端UI工程是react。

你可能感兴趣的:(前端工程化,前端,npm,node.js)