LoginSignup
2
3

More than 5 years have passed since last update.

git+gulp+jsbeautifier

Posted at

やりたいこと

  • 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 させたほうがいい。人がやるときは、最低限綺麗にしておけばいいんじゃないかなと思った

2
3
0

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
2
3