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:
が出ます。
gulpのWEBサーバでPHPを動作させるには gulp-connect-php を使用します。
https://www.npmjs.com/package/gulp-connect-php
browser-sync と連携するには以下のようにします。
npm install --save-dev gulp
npm install --save-dev gulp-connect-php
npm install --save-dev browser-sync
var gulp = require('gulp'),
connect = require('gulp-connect-php'),
browserSync = require('browser-sync');
gulp.task('connect-sync', function() {
connect.server({}, function (){
browserSync({
proxy: '127.0.0.1:8000'
});
});
gulp.watch('**/*.php').on('change', function () {
browserSync.reload();
});
});
npm install --save-dev gulp
npm install --save-dev gulp-uglify
npm install --save-dev gulp-cssmin
npm install --save-dev gulp-rename
npm install --save-dev imagemin
gulp-uglify : JavaScriptを圧縮する
gulp-cssmin : CSSを圧縮する
gulp-rename : ファイル名をリネームする
npm install --save-dev gulp-uglify
uglifyのGulp設定(gulpfile.js に記述)
//
// JavaScript minify設定(uglify)
//
var uglify = require("gulp-uglify");
var rename = require( 'gulp-rename' );
gulp.task('jsmin', function() {
gulp.src('./js/*.js')
.pipe(uglify({preserveComments: 'some'}))
.pipe(rename({suffix: '.min'}))
.pipe(gulp.dest('./js_min'));
});
/*!
残したいコメント
*/
npm install --save-dev gulp-cssmin
//
// CSS minify設定
//
var cssmin = require( 'gulp-cssmin' );
var rename = require( 'gulp-rename' );
gulp.task('cssmin', function () {
gulp.src('./css/*.css')
.pipe( cssmin() )
// .pipe( rename({suffix: '.min'}) )
.pipe( gulp.dest('./css_min') );
});
CSSスタイルガイドジェネレーターはCSSファイルからのドキュメントを生成するとても便利なものです。 frontnote以外にも kss-node, sc5-stylgeduige, などがありますが frontnoteは簡単で使いやすいのでおすすめです。
npm install frontnote --save-dev
npm install --save-dev gulp-frontnote
//
// CSSスタイルガイド frontnote 設定( .scss ファイルからスタイルガイドを生成します)
//
var frontNote = require('gulp-frontnote');
gulp.task('frontnote', function () {
gulp.src('./scss/*.scss')
.pipe(frontNote({
out: './frontnote',
}));
});
npm install --save-dev gup-imagemin
// // jpeg , png 圧縮設定 // var imagemin = require('gulp-imagemin'); gulp.task('imagemin', function(){
gulp.src(['www/img/*.{png,jpg}', 'www/img/*/*.{png,jpg}'])
.pipe(imagemin())
.pipe(gulp.dest('www/img/'));
});