はじめに
この投稿は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.jsonとtarget2.jsonを更新します。
filesには同期対象のjsonファイルを指定しますが、単一ファイルでも、glob指定でもOKです。
まとめ
そもそもJSONファイルが乱立してしまう昨今の開発事情も微妙なところはあるんですけどね…。
JSONファイルのバージョン更新し忘れがちな方は是非どうぞ!