LoginSignup
8

More than 5 years have passed since last update.

posted at

updated at

Organization

JSONファイルの管理をちょっとだけ楽にしてくれるgrunt-sync-versionを紹介するよ

はじめに

この投稿はGrunt Plugins Advent Calendar 2013の8日目の記事です。
http://qiita.com/advent-calendar/2013/grunt-plugins/

grunt-sync-versionとは

JSONファイルのバージョンの更新し忘れを防ぐだけの簡単なプラグインです。

普段の開発でもversionを記述するファイルはpackage.jsonの他に、
bower.jsonとか、ChromeExtensionをたまに開発するときはmanifest.jsonと色々あり、
たまにversionを更新し忘れてpushとかpublishしてしまうときがあった。ので作りました。

使い方

package.jsonがあるプロジェクトルートに移動して、
grunt-sync-versionをインストール。

$ cd ./path/to/your/project
$ npm install grunt-sync-version --save-dev

既にあると思うのでgruntfile.jsに以下のように記述する。

module.exports = function (grunt) {
  grunt.initConfig({
    version: {
      options: {
        base: 'package.json'
      },
      files: ['bower.json']
    }
  });
  grunt.loadNpmTasks('grunt-sync-version');
  grunt.registerTask('default', 'version');
};

baseに指定されたJSONファイルのversionを同期元とし、
filesに指定されたJSONファイルを同期先とします。

optionsに記述してあるbaseについては省略すると、
package.jsonのバージョンを取得するようになってるので、基本は省略で良いかもしれません。

module.exports = function (grunt) {
  grunt.initConfig({
    version: {
      files: ['target1.json', 'target2.json']
    }
  });
  grunt.loadNpmTasks('grunt-sync-version');
  grunt.registerTask('default', 'version');
};

これで、package.jsonのバージョンを元に、target1.jsontarget2.jsonを更新します。
filesには同期対象のjsonファイルを指定しますが、単一ファイルでも、glob指定でもOKです。

まとめ

そもそもJSONファイルが乱立してしまう昨今の開発事情も微妙なところはあるんですけどね…。
JSONファイルのバージョン更新し忘れがちな方は是非どうぞ!

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
What you can do with signing up
8