今回はGruntのプラグインを作ってみたお話
結構あちこちにプラグインの作り方はあったので、
今回はつまずいたところをメモ的に書いておこうと思います。
プラグインのソースコードではなくて、作成フローや設定ですね。
プラグイン作成の流れ
まずはプラグインとなるタスクを作成(ここが一番大変なのですが・・・)
↓
npmにユーザー登録をする
https://www.npmjs.com/signup
↓
マシンにnpmユーザーの設定をする
% npm adduser
コンソールで上記コマンドを実行しましょう。
対話型で色々聞かれますが、npmのユーザー登録時に入力した内容をそのまま入力しましょう。
↓
プラグインのタスクを作成したディレクトリに移動し、
% npm publish
これだけでnpmへ登録されます。
あとは、実際にnpm install
でインストールしてみて、動作確認してみましょう。
gruntプラグインの中身の作り方
自分が参考にしたページのリンクも貼っておきます。
http://www.atmarkit.co.jp/ait/articles/1405/26/news139.html
http://qiita.com/fnobi/items/5590e7e92b4f2bd81d04
http://js.studio-kingdom.com/grunt/doc/creating_plugins
package.jsonは大事
プラグインを作ってnpmに反映する際に、
package.jsonにプラグインの情報を書くことになります。
grunt init
すると色々聞かれるし正直どれが必須なのかわからない。
ということで、これくらい記載しておけばいいかな?って例を書いておきます。
{
"name": "プラグイン名",
"version": "0.0.1",
"description": "プラグインの説明",
"author": {
"name": "作者名"
},
"repository": "githubのリポジトリ[ユーザー名/リポジトリ名]",
"licenses": "ライセンス",
"keywords": [
"gruntplugin"
],
"dependencies": {
[必要なモジュール]
}
}
見ればわかると思うので、注意点だけいくつか。
・version
見たままプラグインのバージョンになります。
この実際にプラグインを公開すると、何かちょっとしたことでも修正すると、
反映するために数値をアップしていかないと修正を受け付けてくれません。
なので、いきなり2.0.0とかしてしまうと、次は2.0.1とかにしないと反映されなくなります。
・author
作者情報です。
名前しか書いてませんが、mailやurlのパラメータも受け付けているようです。
書くときはこんな感じで
"author": {
"name": "作者名",
"email": "メール",
"url": "ホームページ"
},
・keywords
キーワードです。
gruntのプラグインを作成する際は、ここに「gruntplugin」を必ず記載してください。
これ必須。
・dependencies
gruntを使い始めるときに、下記コマンドでプラグインをインストールしていくことが多いかと思います。
npm install [プラグイン名] --save-dev
で、上記コマンドでインストールを行うと自動的にpackage.jsonに
"devDependencies": {
"grunt": "^0.4.5"
},
といった内容が追記されると思うのですが、
プラグインを作成する前提で作業する際は、
npm install [プラグイン名] --save
でインストールを行いましょう。
devDependencies
のままでは、プラグインとして公開してユーザーがインストールした際に、
必要なモジュールを自動でインストールしてくれません。
私はこれにハマりました。
npm install [プラグイン名] --save
でインストールすることで、dependencies
の形式で追記されるようになります。
まとめ
今回作ったプラグインはgrunt-xlsx-renderという、
ちょっと前に書いた記事の内容のプラグイン版みたいなものだったのですが、
やっぱり実際にnpmでインストール出来るとうれしいですね。
いろんな方に見られるという恐怖もありますが・・・(笑)