LoginSignup
23
23

More than 5 years have passed since last update.

Gruntのtaskの実行にかかる時間を劇的に短縮する方法の記述をシンプルにするjit-grunt

Posted at

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の実行にかかる時間を劇的に短縮する方法で紹介した手法の煩雑さに不満がある場合に試してみるといいと思います。

23
23
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
23
23