为什么不会咕噜咕噜地执行我的任务?

时间:2014-12-19 01:32:15

标签: javascript gruntjs grunt-contrib-watch

我正在尝试使用grunt-email-inliner模块,由于某种原因它似乎没有运行。我是新来的咕噜咕噜,我错过了什么?我三重检查了文档。

以下是该插件的链接: https://github.com/yargalot/Email-Builder

module.exports = function(grunt) {
  grunt.initConfig({

    emailBuilder: {
      test: {
        files: [{
          expand: true,
          cwd: 'web/src/vm-templates',
          src: ['*.html'],
          dest: 'web/src/result/',
          ext: '.vm',
        }]
      }
    },
    less: {
      development: {
        options: {
          //compress: true,
          //yuicompress: true,
          //optimization: 2
        },
        files: {
          // target.css file: source.less file
          "WebContent/css/styles.css": "less/styles.less"
        }
      }
    },
    watch: {
      styles: {
        files: ['less/**'], // which files to watch
        tasks: ['less'],
        options: {
          nospawn: true
        }
      }
    }

  });

  grunt.loadNpmTasks('grunt-email-builder');
  grunt.loadNpmTasks('grunt-contrib-less');
  grunt.loadNpmTasks('grunt-contrib-watch');

  grunt.registerTask('default', ['less']);
  grunt.registerTask('default', ['less', 'watch', 'emailBuilder']);

};

2 个答案:

答案 0 :(得分:1)

由于您在声明watch之前声明emailBuilder,因此无法运行。在watch有机会运行之前,emailbuilder会触发并开始轮询更改。下次进行四次检查。

重新订购后:

grunt.registerTask('default', ['less', 'emailBuilder', 'watch']); // correct

correct

重新订购之前:

grunt.registerTask('default', ['less', 'watch', 'emailBuilder']); // Incorrect

incorrect

此外,您还要定义两次default任务:

grunt.registerTask('default', ['less']);
grunt.registerTask('default', ['less', 'watch', 'emailBuilder']);

放下第一个。

答案 1 :(得分:0)

尝试将src: ['*.html']更改为src: ['**/*.html']