FIS 默认的部署插件,提供本地部署以及远程upload部署能力。
此代码存在很大的安全隐患,没有做任何安全考虑,请不要部署到线上服务。
百度内部请使用:http://agroup.baidu.com/fis/md/article/196978
全局安装或者本地安装都可以。
npm install fis3-deploy-http-push --save-dev
也可以使用统一的 deploy 插件配置方法
fis.match('*.js', {
deploy: fis.plugin('http-push', {
//如果配置了receiver,fis会把文件逐个post到接收端上
receiver: 'http://www.example.com:8080/receiver.php',
//这个参数会跟随post请求一起发送
to: '/home/fis/www',
// 附加参数, 后端通过 $_POST['xx'] 获取
// 如果 data 中 含有 to 这个 key, 那么上面那个to参数会覆盖掉data里面的to
data: {
token : 'abcdefghijk',
user : 'maxming',
uid : 1
}
})
})
比如: 部署时需要 token 输入
举一反三
const crypto = require('crypto');
const readlineSync = require('readline-sync');
fis.match('**', {
deploy: [
function (options, modified, total, next) {
var token = readlineSync.question('\r\n请输入授权token : ', {
hideEchoBack: true
});
if (!token) {
return false;
}
var md5 = crypto.createHash('md5');
fis.set('project.token', md5.update(token).digest('hex'));
next();
},
function () {
arguments[0] = {
//如果配置了receiver,fis会把文件逐个post到接收端上
receiver: 'http://127.0.0.1/receiver.php?debug=false',
// receiver: 'http://127.0.0.1/receiver.php',
//这个参数会跟随post请求一起发送
to: '/home/fis/www',
// to: '/Users/fis/www',
// 附加参数, 后端通过 $_POST['xx'] 获取
data: {
token: fis.get('project.token')
}
};
require('fis3-deploy-http-push').apply(this, arguments);
}
]
});