FIS 默认插件 fis3-deploy-http-push 由于对任意一次的编译产出都采取单个文件逐个上传的策略,在项目文件数量较多的时候,速度会变得非常慢且容易在中途崩溃。
通过MD5校验以及zip压缩上传等方式,可以有效提高文件部署效率,提高开发体验。
本插件与原fis上传服务端不兼容,必须使用插件自带的服务端。
首先需要在客户机安装插件,全局安装或者本地安装均可。然后,在服务机的任意目录下,安装插件:
# 安装
npm install fis3-deploy-http-fast-push
# 进入插件目录,并且建立conf.json
cd node_modules/fis3-deploy-http-fast-push/server
npm install
vim conf.json
conf.json的示例如下,你必须指定rootPath的位置,客户机上传的文件只能是rootPath的子目录,这样可以保障服务端的安全
{
"rootPath": "/home/users/project"
}
配置好之后,开启服务端
# 开启服务端,推荐使用PM2来管理进程
pm2 start server.js --name=fastpush
# 或者直接用node开启也可以
node server.js
# node直接开启后台进程
node server.js >> logs.txt 2>&1 &
fis.media('debug').match('*', {
optimizer: null,
useHash: false,
deploy: fis.plugin('http-fast-push', {
host: 'http://yourhost.com:8299',
to: '/node-base',
appName: 'node-base'
})
});
参数说明如下:
参数名称 | 是否必需 | 参数说明 |
---|---|---|
host | 必需 | 目标机器的机器地址,包含http,hostname和port,没有后置斜杠 |
to | 必需 | 目标目录,最后会和服务机的rootPath做合并后得到最终地址。不允许使用../这样的字样 |
appName | 不必需 | 如果你的应用是通过PM2管理的,那么可以填写这个参数,参数的内容就是PM2的应用名称。通过填写这个,每次文件成功上传后都会调用pm2 reload [app],来保证你的更改生效 |