gulp.jsのプラグインを作りたい #javascript #gulp.js version 2

2016/03/03 23:22 by hiro_y hiro_y
  :追加された部分   :削除された部分
(差分が大きい場合、文字単位では表示しません)
gulp.jsのプラグインを作りたい #javascript #gulp.js
こんなgulp.jsのタスクを書いた。用途としてはassetファイルのcache bustering用にファイルのハッシュ値を保存しておくため。

```javascript
var paths = {
  assets: [
    "public/css/**/*.css",
    "public/js/**/*.js",
    "public/img/**/*.svg"
  ]
};

gulp.task('checksum', function() {
  var result = {};
  for (var i = 0; i < paths.assets.length; i++) {
    var files = glob.sync(paths.assets[i]);
    for (var j = 0; j < files.length; j++) {
      var file = files[j];
      if (fs.statSync(file).isFile()) {
        var data = fs.readFileSync(file);
        var hash = crypto.createHash('md5');
        hash.update(data.toString(), 'utf8');
        result[path.basename(file)] = hash.digest('hex');
      }
    }
  }
  fs.writeFileSync(
    'lib/asset-hash.json',
    JSON.stringify(result, null, 2)
  );
});
```

他のプロジェクトでも使いまわしたいので、gulp.jsのプラグインにしようと思う。ただ作ったことがないので、調べながらだ。npmの公開とかしたことがないのでな。アカウント作るところからだ。      

こんなgulp.jsのタスクを書いた。用途としてはassetファイルのcache bustering用にファイルのハッシュ値を保存しておくため。

var paths = {
  assets: [
    "public/css/**/*.css",
    "public/js/**/*.js",
    "public/img/**/*.svg"
  ]
};

gulp.task('checksum', function() {
  var result = {};
  for (var i = 0; i < paths.assets.length; i++) {
    var files = glob.sync(paths.assets[i]);
    for (var j = 0; j < files.length; j++) {
      var file = files[j];
      if (fs.statSync(file).isFile()) {
        var data = fs.readFileSync(file);
        var hash = crypto.createHash('md5');
        hash.update(data.toString(), 'utf8');
        result[path.basename(file)] = hash.digest('hex');
      }
    }
  }
  fs.writeFileSync(
    'lib/asset-hash.json',
    JSON.stringify(result, null, 2)
  );
});

他のプロジェクトでも使いまわしたいので、gulp.jsのプラグインにしようと思う。ただ作ったことがないので、調べながらだ。npmの公開とかしたことがないのでな。アカウント作るところからだ。