内网环境搭建私有npm服务(修改)

尝试自己搭建服务太过复杂,而且要将整个npm库镜像下来是不可能的,于是想到使用缓存的办法。

所有的包全局安装,设置不从服务器获取包,这样 npm install 也可以正常使用。

  1. 在外网机器上新建项目引用内网中需要包
  2. npm install -g
  3. 输入命令npm config get cache查看缓存目录位置
  4. C:\Users\hongpu\AppData\Roaming\npm-cache 拷贝npm缓存,npm-cache文件打包,通过光盘复制替换内网机器npm-cache文件夹。
  5. 内网机器上执行:npm install --cache ./npm-cache --optional --cache-min 99999999999 --shrinkwrap false jquery   或者  npm install --cache ./npm-cache --optional --cache-min 99999999999 --shrinkwrap false
内网环境搭建私有npm服务(修改)_第1张图片 npm包全局安装缓存地址

外网创建一个简化的项目,包全局安装,所有包都安装完后,打包npm-cache文件夹,复制到内网机器上。

npm-cache文件夹中文件已经打包为tgz文件,所以不用考虑windows长路径问题。

参考:node_modules 在没有网络的情况下如何离线安装

前言


鉴于最近的几起数据泄露事件,公司决定所有开发工作必须在内网中进行,隔绝外网,避免代码和数据泄露。但前端开发不可避免引用大量的JS库,于是尝试下载所有的依赖包,拷入内网中,再进行开发。

网上查到有:npm、cnpm、verdaccio、kappa和sinopia等多种搭建方法。

  1. 使用CNPM搭建企业内部私有的NPM库
  2. windows 环境部署私有 npm 源
  3. 使用Sinopia搭建私有的npm仓库
  4. 用sinopia在linux系统中搭建npm私有库

技术背景


NPM:(node package manager),通常称为node包管理器,主要功能就是管理node包,包括:安装、卸载、更新、查看、搜索、发布等。NPM是基于couchdb一个数据库,详细记录了每个包的信息(作者、版本、依赖、授权信息等)。

cnpm:是企业内部搭建npm镜像和私有npm仓库的开源方案。它同时解决了现有npm架构的一些问题。

Kappa是由eBay创建的一个基于npm-delegate和hapi的npm代理,通过kappa我们不需要复制整个公共的仓库数据就能创建自己的私有仓库。

Sinopia: 是一个零配置的私有的带缓存功能的npm包管理工具,作者是是rlidwka,使用sinopia,你不用安装CouchDB或MYSQL之类的数据库,Sinopia有自己数据库,如果要下载的包不存在,它将自动去你配置的npm地址上去下载,而且硬盘中只缓存你下载过的包,以节省空间。

Verdaccio:由于sinopia的2015年10月后停止对sinopia的维护和升级,所以出来了一个sinopia的fork,名字叫做Verdaccio,然后由Verdaccio继续对sinopia进行更新和维护,具体如何使用Verdaccio来构建私有npm服务器,请见Verdaccio的github介绍。

Apache CouchDB:是一个开源数据库,专注于易用性和成为"完全拥抱web的数据库"。它是一个使用JSON作为存储格式,JavaScript作为查询语言,MapReduce和HTTP作为API的NoSQL数据库。其中一个显著的功能就是多主复制。CouchDB的第一个版本发布在2005年,在2008年成为了Apache的项目。

你可能感兴趣的:(git)