7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

grunt-initと同時に、npm install & bower installもやっちゃう

Last updated at Posted at 2013-08-23

grunt-initで、ひととおりのファイルが全部scaffoldできるのは便利ですが、
そのあとnpm installもしなくちゃいけないのが、ちょっとかったるいですよね。

そんなわけで、自分はこんなスクリプト書いて、npm installとついでにbower installも、一気にやってくれるようにしてます。

(なお、このスクリプトはasyncに依存してるので、使う前にnpm installしてくださいw)

つかいかた

こいつを、grunt-templateの /lib に置いて、template.jsでこんな感じに書くと、吉です。

(↓だいぶ省略してます。正確なコードはgithubの方みてください)

var shellLines = require('./lib/shellLines');

exports.template = function (grunt, init, done) {
    init.process( {}, [
        init.prompt('name'),
        init.prompt('description')
    ], function(err, props) {
        // write package.json
        init.writePackageJSON('package.json', pkg);

        // write bower.json
        init.writePackageJSON('bower.json', bower);

        // npm install & bower install
        shellLines([{
            command: 'npm install',
            message: 'Installing npm dependencies'
        },{
            command: 'bower install',
            message: 'Installing bower dependencies'
        }], done);
    });
};

最後の部分、今回作った shellLines という関数に、
実行したいコマンドのリスト、(&その実行中に表示したいメッセージ)
を配列で渡すと、ひとつひとつ実行してくれます。全部終わるとdoneを実行。

ちなみに、init.writePackageJSONで、bower.jsonも書けちゃうというのも地味にポイントです。

出力

地味にこだわってるのは、出力の形式です。

出力例

↑のようなかんじで、他の「Writing …」とかと全くおなじ形式で、
経過を追いつつメッセージが出るようになっています。

まとめ

こんなかんじで、 npm installbower install 以外のshellコマンドも、grunt-init内で一気に実行できるようになっているので、

よろしければおためしください。 shellLines に渡す配列に、設定を足すだけです。

( grunt build とかをやっちゃうのもいいですね。)

2013/08/26 追記

shellLinesをnpm化しました。
npm install shell_lines して、↑のサンプルコードと同様に使っていただければ!

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?