10
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

gulpでFTPのアップロード(gulp-sftp)

Last updated at Posted at 2016-10-21

すでに情報はいろいろあるけど、実際に自分でやってみたのでメモ。

必要なパッケージ

$ 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
10
11
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?