WEB制作(html・css(スタイルシート))に関する各種メモ書き

gulpでSFTPでファイルをサーバにアップロードする

gitが使用できないサーバの時はgulpからSFTPでファイルをアップロードできるようにするととても便利です。

● gulpでSFTPファイルアップロードする gulp-sftp

gulp-sftpのインストール

npm install --save-dev gulp-sftp

gulp-sftpのGulp設定(gulpfile.js に記述)

//
// SFTP 設定
//
var sftp   = require('gulp-sftp');
var fs    = require('fs');
var load_json = function(filename) {
  return JSON.parse(fs.readFileSync(filename, 'utf8'));
};
gulp.task('sftp', function () {
    var my_json = load_json(__dirname + '/gulp_ftp.json');
    return gulp.src(my_json.file_options)
           .pipe(sftp( my_json.ftp_options ));
});

sftpの設定ファイル( gulp_ftp.json )

{
    "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:

が出ます。


関連エントリー

No.1046
07/19 15:28

edit

gulp