Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

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

makotot
medley
医療ヘルスケア分野の課題を解決する
https://www.medley.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away