Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

はじめに

この投稿は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ファイルのバージョン更新し忘れがちな方は是非どうぞ!

1000ch
✌(՞ټ՞✌)
https://shogosensui.com
mercari
フリマアプリ「メルカリ」を、グローバルで開発しています。
https://tech.mercari.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away