すでに情報はいろいろあるけど、実際に自分でやってみたのでメモ。
必要なパッケージ
- gulp
- gulp-sftp
$ npm install gulp --save-dev
$ npm install gulp-sftp --save-dev
シンプルにアップロードするだけ
gulpfile.js
var gulp = require('gulp');
var sftp = require('gulp-sftp');
gulp.task('upload', function () {
return gulp.src([
'html/**/*' // アップロードしたいファイルを指定
])
.pipe(sftp({
// FTP情報を入力
host: "***.com",
user: "***",
pass: "***",
remotePath: "/home/***/" // リモート側のパス (デフォルトは "/")
})
);
});
アップロードの実行
gulp upload
gulpfile.jsに直接FTP情報を書きたくない場合
FTP情報を外部ファイルに記述
ftp.json
を用意したとする。
ftp.json
{
"host": "***.com",
"user": "***",
"pass": "***",
"remotePath": "/home/***/"
}
gulpfile.js
ftp.jsonを読み込むコードを追加。
gulpfile.js
var gulp = require('gulp');
var sftp = require('gulp-sftp');
var fs = require('fs'); // 追記 (npm installは不要)
// FTP情報を読み込む
var ftp = JSON.parse(fs.readFileSync('ftp.json', 'utf8'));
gulp.task('upload', function () {
return gulp.src([
'html/**/*' // アップロードしたいファイルを指定
])
.pipe(sftp(ftp)
});
ちなみに、外部ファイルの読み込み自体は require
でもいいけど、キャッシュ関係で問題を起こすことがあるみたいなので、このような JSON.parse
とかいうコードが出てくる。詳しくは以下の記事を参照。
アップロードの実行
gulp upload