gulp

git+gulp+jsbeautifier

More than 3 years have passed since last update.


やりたいこと


  • node.jsで開発時にgitのリモートリポジトリにpushする前にgulp経由でJS Beautifierをしている

  • ファイルが多くなってくると時間がかかる(大体1分〜2分)

  • 修正したファイルはせいぜい2,3ファイルなので、それだけbeautifyしたい


やりかた


  • gulp-jsbeautifierとgulp-gitで、commitする前のファイルにJS Beautifierを実行する

  • この方法だとcommit -> js beautifier -> rebase -> pushという方法ができない


gulpfile.js

var gulp = require('gulp');

var prettify = require('gulp-jsbeautifier');
var log = require('gulp-print');
var git = require('gulp-git');

gulp.task('default', function() {
console.log('run task');
});

gulp.task('jsbeautify', function() {
// lib以下にコードが入っている
git.exec({
args: 'diff --name-only HEAD ./lib/*.js ./lib/**/*.js'
}, function(err, stdout) {
if (err) throw err;
console.log(stdout);

var files = stdout.split('\n');
files.pop();
jsbeautify(files);
});
});

function jsbeautify(files) {
if (files.length === 0) {
console.log('no beautify file');
return;
}
gulp.src(files, {
base: './lib'
})
.pipe(log())
.pipe(prettify({
mode: 'VERIFY_AND_WRITE',
config: '.jsbeautify'
}))
.pipe(gulp.dest('lib'));
}



結論

JenkinsとかのCIサーバにJS Beautifier -> test -> commit/push させたほうがいい。人がやるときは、最低限綺麗にしておけばいいんじゃないかなと思った