あまり新しくないもの

新しさはそんなに求めず、自分のすきなことをやりたい人生だった

Gruntfile.jsで新しいプラグインを入れるときに楽をするやつ+何か

Gruntを使っていて、後から新しいプラグインを入れるとき、いちいち次のようにGruntfile.jsにプラグインを読み込む一文を追加しないといけない。

grunt.loadNpmTasks('grunt-new-plugin');

これはとても面倒。

面倒だし、うっかり追加忘れてエラー吐いてしまうとかよくある。ゆえにダサい。

自動化する。

module.exports = function(grunt) {
    // ここから
    var pkg = grunt.file.readJSON('package.json');
    var taskName;
    for(taskName in pkg.devDependencies) {
        if(taskName.substring(0, 6) == 'grunt-') {
            grunt.loadNpmTasks(taskName);
        }
    }
    // ここまでを追加
    // 以下通常通りtask定義などしていく
};

これでOK。package.jsonをもともと読み込んでるならそれをそのまま使えばOK。

あとはいつもどおりmodule.exportsの中にtaskを定義したり、grunt.registerTaskしたりする。


他にも細かい設定とかも、Gruntfileガリガリ書いてるとそこら中に散らばったりして面倒なことが多い。そういうときも適当にgrunt.conf.jsonとかそういうのを作っておいて、まとめておくと後々楽だったりするかもしれない。

その場合も同じように

var conf = grunt.file.readJSON('grunt.conf.json');

とかやってconfを読み込んでおけば、

dest: '<%= conf.hoge %>/piyopiyo',
option: conf.hogeOpt

みたいな感じで使えて楽。多分。