-
Notifications
You must be signed in to change notification settings - Fork 141
dev deploy test
xiangshouding edited this page Jan 14, 2015
·
1 revision
FIS 根据目录规范默认设置了文件的产出路径:
└── config
│ └── modulename-map.json 静态资源表
├── template
│ ├──home
│ │ └── page
│ │ └── index.tpl page级模板文件
│ │ └── widget
│ │ └── section
│ │ └── section.tpl widget模板文件
├── static
│ └── home
│ │ ├── pkg
│ │ │ ├── demo.css 打包css文件
│ │ │ └── demo.js 打包js文件
│ │ ├── index
│ │ │ ├── index.css page级css文件
│ │ │ └── index.js page级js文件
│ │ └── widget widget组件目录
│ │ └── section
│ │ └── section.css
├── plugin
├── test
用户根据产出后的目录,只需要将 config、template、static、plugin 目录上传至联调机器进行项目联调。
用户通过配置 deploy节点 进行文件上传,fis支持使用post请求向http服务器发送文件,服务器端可以使用php、java等后端逻辑进行接收,fis-command-release插件中提供了一个这样的 php版示例,用户可以直接部署此文件于接收端服务器上。
注意: receiver.php放到测试机后,请在浏览器中直接访问该文件,保证可以访问。 可以访问的情况下,页面会显示 I'm ready for that, you know.
根据产出目录以及联调机器,进行上传配置:
//上传到一个 remote测试机
fis.config.set('deploy', {
//使用fis release --dest static来使用这个配置
remote: [{
//如果配置了receiver,fis会把文件逐个post到接收端上
receiver : 'http://www.example.com/path/to/receiver.php',
//从产出的结果的static目录下找文件
from : '/static',
//上传目录从static下一级开始不包括static目录
subOnly : true,
//保存到远端机器的/home/fis/www/static目录下
//这个参数会跟随post请求一起发送
to : '/home/fis/www/',
//某些后缀的文件不进行上传
exclude : /.*\.(?:svn|cvs|tar|rar|psd).*/
},
{
//如果配置了receiver,fis会把文件逐个post到接收端上
receiver : 'http://www.example.com/path/to/receiver.php',
//从产出的结果的config目录下找文件
from : '/config',
//保存到远端机器的/home/fis/www/config目录下
//这个参数会跟随post请求一起发送
to : '/home/fis/www/',
//某些后缀的文件不进行上传
exclude : /.*\.(?:svn|cvs|tar|rar|psd).*/
},
{
//如果配置了receiver,fis会把文件逐个post到接收端上
receiver : 'http://www.example.com/path/to/receiver.php',
//从产出的结果的template目录下找文件
from : '/config',
//保存到远端机器的/home/fis/www/template目录下
//这个参数会跟随post请求一起发送
to : '/home/fis/www/',
//某些后缀的文件不进行上传
exclude : /.*\.(?:svn|cvs|tar|rar|psd).*/
},
{
//如果配置了receiver,fis会把文件逐个post到接收端上
receiver : 'http://www.example.com/path/to/receiver.php',
//从产出的结果的plugin目录下找文件
from : '/plugin',
//保存到远端机器的/home/fis/www/plugin目录下
//这个参数会跟随post请求一起发送
to : '/home/fis/www/',
//某些后缀的文件不进行上传
exclude : /.*\.(?:svn|cvs|tar|rar|psd).*/
}]
});
//上传到remote,local,remote2三台机器
//fis-conf.js
fis.config.set('deploy', {
//使用fis release --dest remote来使用这个配置
remote : {
//如果配置了receiver,fis会把文件逐个post到接收端上
receiver : 'http://www.example.com/path/to/receiver.php',
//从产出的结果的static目录下找文件
from : '/static',
//保存到远端机器的/home/fis/www/static目录下
//这个参数会跟随post请求一起发送
to : '/home/fis/www/',
//通配或正则过滤文件,表示只上传所有的js文件
include : '**.js',
//widget目录下的那些文件就不要发布了
exclude : /\/widget\//i,
//支持对文件进行字符串替换
replace : {
from : 'http://www.online.com',
to : 'http://www.offline.com'
}
},
//名字随便取的,没有特殊含义
local : {
//from参数省略,表示从发布后的根目录开始上传
//发布到当前项目的上一级的output目录中
to : '../output'
},
//也可以是一个数组
remote2 : [
{
//将static目录上传到/home/fis/www/webroot下
//上传文件路径为/home/fis/www/webroot/static/xxxx
receiver : 'http://www.example.com/path/to/receiver.php',
from : '/static',
to : '/home/fis/www/webroot'
},
{
//将template目录内的文件(不包括template一级)
//上传到/home/fis/www/tpl下
//上传文件路径为/home/fis/www/tpl/xxxx
receiver : 'http://www.example.com/path/to/receiver.php',
//from支持正则
from : '/template',
to : '/home/fis/www/tpl',
//subOnly仅上传
subOnly : true
}
]
});
-
--dest参数 支持使用逗号(,)分割多个发布配置,比如上面的例子,我们可以使用fis release --dest remote,plugin 命令在一次编译中同时发布多个目标。
-
subOnly参数
默认上传from整个目录到测试机。添加subOnly参数仅上传from目录下文件。 -
replace替换多个字符串 需要replace替换多个字符串,可以使用正则的方式。例如:
replace : {
from : /www\.a\.com|www\.b\.com/,
to : function(m){
if(m === 'www.a.com') return 'www.x.com';
if(m === 'www.b.com') return 'www.y.com';
}
}
-
上传到一半突然中断,怎么办?
A: 请关闭测试机的服务器的防火墙,然后重新上传。至于服务器防火墙怎么关闭,不同服务器不一样,所以还是查文档或者google一下吧