咕噜在完成一个任务之前继续下一个任务



这是我的grunt文件:

'use strict';
var path = require('path');
module.exports = function (grunt) {
  require('load-grunt-tasks')(grunt);
  require('time-grunt')(grunt);
  console.log(path.basename());
  grunt.initConfig({
      yeoman: {
          app: require('./bower.json').appPath || 'app',
          build: 'dist',
          name: require('./bower.json').name
      },
      html2js: {
          options: {
              module: '<%= yeoman.name %>-templates',
              base: 'app'
          },
          main: {
              src: ['<%= yeoman.app %>/**/*.tpl.html'],
              dest: '<%= yeoman.build %>/templates.js'
          }
      },
      sass: {
          dist: {
              src: '<%= yeoman.build %>/<%= yeoman.name %>.scss',
              dest: '<%= yeoman.build %>/<%= yeoman.name %>.css'
          }
      },
      imageEmbed: {
          dist: {
              files: [{
                  expand: true,
                  cwd: '<%= yeoman.app %>/styles/',
                  src: ['*.{scss,css}'],
                  dest: '.tmp/'
              }]
          }
      },
      cssmin: {
          dist: {
              src: '<%= yeoman.build %>/<%= yeoman.name %>.css',
              dest: '<%= yeoman.build %>/<%= yeoman.name %>.min.css'
          }
      },
      concat: {
          css: {
              src: ['.tmp/**/*.scss', '.tmp/**/*.css'],
              dest: '<%= yeoman.build %>/<%= yeoman.name %>.scss'
          },
          js: {
              src: ['<%= yeoman.build %>/templates.js', '<%= yeoman.app     %>/scripts/app.js', '<%= yeoman.app %>/scripts/**/*.js'],
              dest: '<%= yeoman.build %>/<%= yeoman.name %>.js'
          }
      },
      uglify: {
          complete: {
              src: '<%= yeoman.build %>/<%= yeoman.name %>.js',
              dest: '<%= yeoman.build %>/<%= yeoman.name %>.min.js'
          }
      },
      karma: {
          options: {
              configFile: 'karma.conf.js'
          },
          unit: {
              singleRun: true
          }
      }
  });

  grunt.registerTask('build', [
      'html2js',
      'imageEmbed',
      'concat:css',
      'sass',
      'cssmin'
      'concat:js',
      'uglify',
  ]);
  grunt.registerTask('test', [
      'karma:unit'
  ]);
};

运行grunt build时,我得到以下错误:

运行"sass:dist" (sass)任务

运行"cssmin:dist" (cssmin)任务

目标未写入,因为minified CSS为空。

当我分别运行每个任务时,没有错误。我认为上一个任务在下一个任务开始之前还没有完成。有人知道为什么会这样吗?

谢谢。

这可能是由于sass任务是异步运行的,我遇到过类似的肝脏负载问题。

尝试这样做,并在两个任务之间注册:

  grunt.registerTask('wait', function () {
    grunt.log.ok('Waiting for server reload...');
    var done = this.async();
    setTimeout(function () {
      grunt.log.writeln('Done waiting!');
      done();
    }, 1500);
  });
http://gruntjs.com/api/inside-tasks

相关内容

  • 没有找到相关文章