自动编译CoffeeScript的Gruntfile.js

比如把coffee文件写在coffee/controller/文件夹下,新建js/controller文件夹,使用grunt运行项目,将自动编译coffee到相应的js文件夹下。

module.exports = function(grunt) {
  // 项目配置信息.
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    jshint: {
      options : {
        jshintrc: '.jshintrc',
        // eqeqeq: true,
        // tradiling: true,
        ignores: ['node_modules/**/*.js']
      },
      all: ['**/*.js']
    },
    coffee:{
      compile: {
        options: {
          sourceMap: false,
          bare: true
        },
        files: [{
          expand: true,
          cwd: "coffee/",
          src: '**/*.coffee',
          dest: 'js/',
          ext: '.js'
        }]
      }
    },
    watch: {
      coffee: {
        files: ['**/*.coffee'],
        tasks: ['coffee:compile']
      // },
      // js: {
      //   files: ['**/*.js'],
      //   tasks: ['jshint'],
      //   options: {
      //     livereload: true
      //   }
      }
    },
    nodemon: {
      dev: {
        script: 'bin/www',
        options: {
          args: [],
          ignoredFiles: [],
          watchedExtensions: ['js'],
          watchedFolders: ['./'],
          debug: true,
          delayTime: 1,
          env: {
            PORT: 3000
          },
          cwd: __dirname
        }
      }
    },
    concurrent: {
      tasks: ['watch','nodemon'],
      options: {
        logConcurrentOutput: true
      }
    }
  });
  // 加载"uglify"插件..
  grunt.loadNpmTasks('grunt-contrib-watch');
  grunt.loadNpmTasks('grunt-contrib-coffee');
  grunt.loadNpmTasks('grunt-contrib-jshint');
  grunt.loadNpmTasks('grunt-nodemon');
  grunt.loadNpmTasks('grunt-concurrent');
  //grunt.loadNpmTasks('grunt-ssh');

  grunt.option('force', true);

  // 注册默认任务.
  grunt.registerTask('default', ['concurrent']);
};

 

posted on 2015-01-12 18:33  卖火柴的小东东  阅读(710)  评论(0编辑  收藏  举报

导航