Gruntのtaskの実行にかかる時間を劇的に短縮する方法の記述をシンプルにするjit-grunt
Gruntのtaskの実行にかかる時間を劇的に短縮する方法を先日投稿しましたが、その中では
grunt.registerTask('lint', [], function () {
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.task.run('jshint');
});
というようにregisterTask
のコールバックでloadNpmTasks
を実行するようにしたので、記述の冗長さが問題だなと感じるものでした。
加えて、個別のtaskを実行するには毎回taskを定義する必要がありました。
可読性も低下しているし、運用面でも問題があるように思います。
そこでjit-gruntを使えばその問題が解消されます。
jit-grunt
npmでインストールします。
$ npm i jit-grunt --save-dev
load-grunt-tasksと同じような使い方で
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.loadNpmTasks('grunt-browserify');
のかわりに
require('jit-grunt')(grunt);
と記述します。そうすると、loadNpmTasks
の遅延読み込みを実現した上で、シンプルに1行で記述できます。
以下のルールで、taskの名前から自動的に使用するプラグインを探し出すようになっています。
grunt-contrib-<task name>
grunt-<task name>
<task name>
そのルールに沿わない場合、手動でマッピングすることも出来ます。
require('jit-grunt')(grunt, {
bower: 'grunt-bower-task'
});
jit-gruntを利用すると、Gruntタスクの実行時間を短縮しつつ、Gruntfileもシンプルな状態にすることができるので、Gruntのtaskの実行にかかる時間を劇的に短縮する方法で紹介した手法の煩雑さに不満がある場合に試してみるといいと思います。