HOME>情報備忘録>[Grunt]javascriptとcssを別々にwatchしたい

[Grunt]javascriptとcssを別々にwatchしたい

普通にwatchしてるとJavascript編集時にCSSの処理も走るので、Javascript編集時にはJavascriptのみのタスクが、 CSS編集時にはCSSのタスクのみが走るようにする。

Gruntfile.js

  1. module.exports = function (grunt) {
  2.     grunt.initConfig({
  3.         pkg: grunt.file.readJSON('package.json'),
  4.         compass: {
  5.             dist: {
  6.                 options: {
  7.                     sassDir: 'sass',
  8.                     cssDir: 'css',
  9.                     environment: 'production',
  10.                     outputStyle: 'compressed'
  11.                 }
  12.             }
  13.         },
  14.  
  15.         watch: {
  16.             css: {
  17.                 files: ['sass/*'],
  18.                 tasks: ['compass', 'concat:css']
  19.             },
  20.  
  21.             js: {
  22.                 files: ['javascript/*'],
  23.                 tasks: ['concat:js', 'uglify:js']
  24.             }
  25.         },
  26.  
  27.         concat: {
  28.             js: {
  29.                 src: [
  30.                     'javascript/core.js',
  31.                     'javascript/modules.js'
  32.                 ],
  33.                 dist: 'javascript/all.js'
  34.             },
  35.             css: {
  36.                 src: [
  37.                     'css/libs.css',
  38.                     'css/doc.css'
  39.                 ],
  40.                 dist: 'css/all.css'
  41.             }
  42.         },
  43.  
  44.         uglify: {
  45.             js: {
  46.                 options: {
  47.                     banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
  48.                 },
  49.                 build: {
  50.                     src: 'javascript/all.js',
  51.                     dest: 'javascript/all.min.js'
  52.                 }
  53.             }
  54.  
  55.         }
  56.     });
  57.  
  58.     grunt.loadNpmTasks('grunt-contrib-compass');
  59.     grunt.loadNpmTasks('grunt-contrib-watch');
  60.     grunt.loadNpmTasks('grunt-contrib-concat');
  61.     grunt.loadNpmTasks('grunt-contrib-uglify');
  62.  
  63.     grunt.registerTask('watch-css', [ 'watch:css' ]);
  64.     grunt.registerTask('watch-js', [ 'watch:js' ]);
  65. };
  66.  

重量なのはwatchのところで、watchの下を適当なプロパティ名で分けておくと

SH

  1. grunt watch
  2.  

したとき、Javascriptの編集でCSSのタスクが走ったりすることがない。 この例では不要ですが、grunt.registerTask()を利用することで 自分でコマンドで実行できるタスクを作成できる。

CSSのみwatchしたい時

  1. grunt watch-css
  2.  

Javascriptのみwatchしたい時

  1. grunt watch-css
  2.  

いつか必要になりそうな機能です。

投稿日 2013年11月20日 21:12
カテゴリ 設定 | 開発環境
タグ Grunt
トラックバック URL http://www.kantenna.com/cgi-bin/mt504/mt-tb.cgi/1335

コメント

コメントする
Name
Email Address
URL