团队需要一个私有npm

作者: CatchZeng | 来源:发表于2018-05-22 22:16 被阅读65次

一、前言

随着Team人员越来越多,项目间的代码复用显得越来越重要。比如:常用的框架/库、工具方法等。另外团队内部的代码模块化,也需要有一个机制来管理。目前npm是前端代码的包管理(类似iOS 的cocoapods、android的gradle)首选。于是,我尝试使用私有npm搭建一套前端仓库,用以在公司内部托管公共代码以及将代码模块化。

二、选型

npm+私有git仓库

制作&使用

1.新建私有git仓库(如:https://gitlab.com/mygroup/myproject.git),用group建立项目较方便代码的管理,也能作为npm的scope。

  • clone仓库
git clone https://gitlab.com/mygroup/myproject.git

2.npm init

npm init --scope=mygroup

3.push到仓库即可

4.安装

"@mygroup/myproject": "https://gitlab.com/mygroup/myproject.git"

5.使用

var myproject = require('@mygroup/myproject');
优缺点

缺点:不能使用npm直接update
优点:简单直接

npmjs官方托管

制作&使用

参考官方教程https://docs.npmjs.com/private-modules/intro

优缺点

缺点:需要支付每个月7刀; 不能使用npm直接update;
优点:简单直接;开源&闭源项目同一托管

使用verdaccio自己托管

verdaccio
制作&使用

1.安装verdaccio

npm install --global verdaccio 

2.启动服务

verdaccio

3.团队人员都绑定registry

npm set registry http://verdaccio托管的ip地址:4873

4.增加用户

npm adduser --registry http://verdaccio托管的ip地址:4873

5.发布私有库

npm publish --registry http://verdaccio托管的ip地址:4873

6.安装私有库

npm i 私有库名称

7.使用私有库

var 私有库名称 = require('私有库名称');
优缺点

优点:免费;本地速度快&带公有库缓存;支持yarn
缺点:需要自己托管维护

注:为了切换源方便,可以使用nrm

安装

npm install -g nrm

增加私有源

nrm add 私有源名称 http://verdaccio托管的ip地址:4873

列出所有源(*表示现在正在使用的源)

$ nrm ls

* npm ---- https://registry.npmjs.org/
  cnpm --- http://r.cnpmjs.org/
  eu ----- http://registry.npmjs.eu/
  au ----- http://registry.npmjs.org.au/
  sl ----- http://npm.strongloop.com/
  nj ----- https://registry.nodejitsu.com/
私有源名称  http://verdaccio托管的ip地址:4873

切换源

$ nrm use 自定义私有库名称
   Registry has been set to: http://verdaccio托管的ip地址:4873

三、总结

基于上面选型中的分析,我最终选择了verdaccio。私有npm的作用,不单单是作为包管理器,更是项目模块化的一种“约束”。这样一来,你就不会往一个模块随意加入本该属于另外一个模块的代码,也就是会逼迫你去做解耦。另外有了私有npm,每个模块更“独立化”,能“专心”为其加入单元测试&持续集成等实践,使每个模块的质量能得到较好的保障,提高整体软件的质量。

相关文章

  • 团队需要一个私有npm

    一、前言 随着Team人员越来越多,项目间的代码复用显得越来越重要。比如:常用的框架/库、工具方法等。另外团队内部...

  • 使用 verdaccio 搭建 npm 服务器

    有时候我们想用公司的npm包,而某些代码又是私密的,就需要部署到npm私有服务器。verdaccio是一个私有的n...

  • 前端架构之路(7) - 私有 npm 仓库

    私有 npm 仓库 1. “私有 npm 仓库” 有何用 组件化之后,搭建 “私有 npm 仓库” 是个不错选择。...

  • 使用verdaccio搭建npm私服仓库

    为什么需要搭建私有 npm -搭建公司内部中台做铺垫,代码属于公司资产-团队内部使用一些待完善package半成品...

  • Swift/Objective-C-使用Cocoapods创建/

    团队管理开发,资源整合维护,或者其他情况,需要建立私有库,不被别人访问。如果是团队管理开发私有库,需要释放私有库权...

  • 搭建私有代码仓库服务器 Sinopia

    配置 私有仓库 在 CentOS 6 上配置私有 NPM 仓库 使用Sinopia搭建私有的npm仓库

  • 使用verdaccio搭建私有npm

    因为公司项目原因,需要私有npm 使用之前,我们先来个哲学三问 为什么我们需要搭建私有cnpm? 因为不方便公开 ...

  • npm和nvm和nrm

    npmnode package manage私有化npm包,sinopia私有化安装,npm私有化包管理等组件化开...

  • 从0开始使用sinopia搭建私有npm仓库

    因为业务安全需要等种种原因,不能够把插件都发布到公共的npm仓库,所以需要搭建自己的私有npm仓库,最近自己搭建了...

  • 如何创建私有npm仓库?

    原文地址:如何创建私有npm仓库? 目录 为什么要使用私有npm仓库呢? 如何搭建呢? 如何启动verdaccio...

网友评论

    本文标题:团队需要一个私有npm

    本文链接:https://www.haomeiwen.com/subject/sqcvrftx.html