gitが使用できないサーバの時はgulpからSFTPでファイルをアップロードできるようにするととても便利です。
gulp version4 では gulp-sftp がうまく動作しないので gulp-sftp-up4 を使用します。
npm install --save-dev gulp-sftp-up4
var my_json = load_json(__dirname + '/gulp_ftp.json');
console.log( my_json );
gulp.task('sftp', function () {
return gulp.src( my_json.file_options )
.pipe(sftp( my_json.ftp_options ));
});
{
"file_options" : [
"www/**",
"!www/test/**",
"!www/**/___*"
] ,
"ftp_options" : {
"host" : "xxx.yyy.com",
"port" : 22,
"user" : "hogehoge",
"pass" : "fugafuga",
"remotePath": "/var/www/mysite/htdocs/"
}
}
アップロードするファイルのルールは
ローカルの(./www)以下の全てのファイルを、サーバ上の(/var/www/mysite/htdocs/)へアップロードする
ローカルの( ./www/test/)フォルダ以下はアップロードしない
ローカルの先頭アンダーバー3つで始まるファイル( 例:___myfile.html )はアップロードしない
です。
remotePath は 必ずスラッシュ(/)で始まる絶対パスで表記すること。 絶対パスでないとディレクトリ作成時に下記エラー
SFTP error or directory exists:
が出ます。