Gulpでplayのアセットファイルを生成できるプラグインをつくった
最近仕事でplay frameworkを使っているのだけど、playにはアセットファイルをコンパイルしてくれるsbt-webというのがある。これは便利っぽいのだけど、いままでnpmの世界で育った人間にはちょっと困った。だいたい、gulp-なんとか
ってプラグインではなくsbt-なんとか
ってプラグインを探したり、試したり、つくったりしないといけないのはつらい。
playはpublicディレクトリの下にアセットファイルをおけば良いのだが、gzipしたファイルとかmd5ファイルとかを用意しておけば、それを良い感じに使ってくれる。このあたりは下の記事が詳しい。
gulpでのやり方も書いてあったんだけど、面倒なのでプラグインにしておいた。
Gulpfile.jsにはこんなかんじでかけばよい。
var gulp = require('gulp'); var playAssets = require('gulp-play-assets'); var gzip = require('gulp-gzip'); gulp.task('build', function() { gulp.src('assets/**') .pipe(playAssets()) .pipe(gulp.dest('./public')); // output unzipped files .pipe(gzip({ append: true })) .pipe(gulp.dest('./public')); // output zipped files
これでちゃんとgzipしたファイルもできて、playもそれを使ってくれる。あとはsbt起動したときにgulpも起動するようにしておけば便利だと思う(やったことないけど)。
はじめてのGulpプラグインなので皆さんのコントリビュートをお待ちしております。