gulp や grunt と似たようなソフトウェアである sigh というビルドシステムが話題になっていたので試してみました。
インストール
npm
でインストールします。 babel
を使ってトランスパイルするプラグイン sigh-babel
と、 mocha
を実行する gulp
プラグイン gulp-mocha
も一緒にインストールしておきます。
$ npm install -g sigh-cli
$ npm install -D sigh
$ npm install -D babel sigh-babel gulp-mocha
試してみる
テストコードを ES6 で書き、 mocha
で実行してみます。まずはテストコードを用意します。
// a.js
import assert from 'assert';
var f = x => x * x;
describe('f', () => {
it('returns square', () => {
assert(f(3) === 9);
});
});
これをビルドしてテストを実行する用に sigh
の設定ファイル sigh.js
を JavaScript で用意します。
// sigh.js
var babel;
var glob;
var mocha;
var pipeline;
var write;
module.exports = function(pipelines) {
pipelines['build'] = [
glob('a.js'),
babel({ modules: 'common' }),
write('out')
];
pipelines['test'] = [
pipeline('build'),
mocha({ files: 'out/a.js' })
];
};
sigh
で特徴的なのがプラグインの読み込み方です。プラグインは package.json
の dependencies
に書かれた sigh-*
と gulp-*
を自動でグローバルに読み込まれます。上の例で最初に var
で定義しているものがプラグインです。 glob
と pipeline
、 write
は sigh
自身に組み込まれた関数です。
pipelines[...]
に配列で処理を指定していくとそれが実行されます。
これを実行するコマンドが sigh
です。
$ sigh
これでコンパイルとテストが実行されます。ビルドだけで良い場合は sigh build
とします。
監視
-w
オプションでファイルを監視して更新があった時、自動で実行してくれます。
$ sigh -w
開発中はこのコマンドを実行しておく感じですかね。
まとめ
sigh
は JavaScript 製のビルドシステム- プラグインは
package.json
に書いておくと自動で読み込んでくれる -w
オプションでファイルを監視して実行