github.com/justinjmoses/evergreen@v0.0.0-20170530173719-1d50e381ff0d/public/Gruntfile.js (about) 1 module.exports = function(grunt) { 2 3 require('load-grunt-tasks')(grunt); 4 grunt.initConfig({ 5 pkg: grunt.file.readJSON('package.json'), 6 7 babel: { 8 options: { 9 sourceMap: true, 10 plugins: ['transform-react-jsx'], 11 presets: ['es2015', 'react'] 12 } 13 }, 14 15 react: { 16 dynamic_mappings: { 17 files: [{ 18 expand: true, 19 cwd: 'static/js/jsx', 20 src: ['**/*.jsx'], 21 dest: 'static/js', 22 ext: '.js' 23 }] 24 } 25 }, 26 27 watch: { 28 css: { 29 files: ['static/less/**'], 30 tasks: ['css'] 31 }, 32 react: { 33 files: ['static/js/jsx/**'], 34 tasks: ['react'] 35 } 36 }, 37 38 less: { 39 main: { 40 options: { 41 paths: ['static/less'], 42 sourceMap: true, 43 sourceMapFilename: 'static/dist/less.map', 44 sourceMapURL: '/static/dist/less.map', 45 sourceMapRootpath: '../../' 46 }, 47 files: { 48 'static/dist/css/styles.css': 'static/less/main.less' 49 } 50 } 51 }, 52 53 cssmin: { 54 combine: { 55 files: { 56 'static/dist/css/styles.min.css': 'static/dist/css/styles.css' 57 } 58 } 59 } 60 }); 61 62 grunt.loadNpmTasks('grunt-contrib-less'); 63 grunt.loadNpmTasks('grunt-contrib-cssmin'); 64 grunt.loadNpmTasks('grunt-contrib-watch'); 65 grunt.loadNpmTasks('grunt-react'); 66 67 grunt.registerTask('css', ['less', 'cssmin']); 68 grunt.registerTask('default', ['css']); 69 };