LoginSignup
0
0

More than 5 years have passed since last update.

Gruntのプラグイン作成でつまずいたこと

Posted at

今回は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でインストール出来るとうれしいですね。
いろんな方に見られるという恐怖もありますが・・・(笑)

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