Skip to content

justmywyw/npm_cache_share

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

##npm_cache_share ##介绍 该工程是用于发布时安装模块依赖的,强制依赖npm-shrinkwrap.json文件,如果工程没有该文件,请执行npm shrinkwrap来生成。该工程主要是以模块为单位来进行安装的,有的缓存的做法是将整个工程的node_modules来生成缓存,只要有新增的模块就要生成新的,在空间和时间上都不是最细粒度的。本工程分两级缓存,一级是本机器缓存,第二级是公共缓存机器(需要启动缓存服务)。

##问题 为了避免将node_modules入到工程版本库里(这种方式对于有环境依赖的模块是有问题的,比如node-sass,fibers等必须重新build才能运行),需要在发布过程中动态安装,虽然npm自身也有cache,但即使开启了(通过 --cache-min 时间 来开启)还是会发起请求询问是否更新,当然这个不是主要问题,主要还是依赖node-gyp的模块,有的编译时间耗费较长,故为了解决这些问题而产生该项目。 ##指令

Usage:  <commands> [options]

Commands:

    server      将会启动公共缓存服务,一般用做多台机器共享缓存模块,会在指令执行路径下生成npm_cache_share文件夹来存放缓存                    
    install     进行依赖安装,会依赖npm-shrinkwrap.json文件来安装模块(如果不存在则直接通过npm install)
    clean       清除缓存,需要指定是客户端,还是服务端,默认是清除客户端缓存目录
    config		配置选项默认值,可set,get,list大部分option,也可以通过~/.npm_cache_share_config.json手动修改这些配置
    help        帮助说明

Options:
	-V,--version	打印当前版本信息
	-d,--debug		打印所有调试信息
	-h,--help		显示该条命令的帮助信息

  of 'server'
  	-s,--storage		指定中央缓存类型,目前有localfile和swift
    -c --storageConfig 	指定中央缓存配置,localfile为"[存储目录路径]",swift为"[HOST\|USER\|TOKEN]"
    -p,--port        	指定公共缓存服务的端口,使用如 npm_cache_share server --port 9999
    -f,--useFork		强制使用fork方式启动(如果检测到本地pm2会自动使用pm2启动服务)
    -t,--token			指定服务的令牌token,用于校验用户上传权限
    -i,--i				适用于pm2启动服务,指定进程数目
    -n,--name			适用于pm2启动服务,指定服务名称

  of 'install'
  	-c,--type			指定公共缓存服务类型,目前有node(默认)与nexus(功能有限)
  	-e,--repository     指定公共缓存服务仓库,由HOST:PORT/NAME构成
    -r,--registry    	指定安装的源, 使用如 npm_cache_share install --registry 源
    -t,--token			仅type=node,指定公共服务上传所需要校验的token
    -a,--auth			仅type=nexus,指定nexus账户(username:password)
    -n,--npm [npm]      可指定npm的安装路径来执行npm指令,用于指定特定版本的npm
    -p,--production,--noOptional,--save,--save-dev	同npm安装

  of 'clean'
     -s,--forServer   指定当前运行环境是在公共缓存服务上,使用如 npm_cache_share clean --forServer

About

npm cache share

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 94.5%
  • CSS 3.3%
  • HTML 2.2%