3

这是我的咕噜声文件:

'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)任务

目的地未写,因为缩小的 CSS 为空。

当我单独运行每个任务时,没有错误。我认为在下一个任务开始之前,sass 任务还没有完成。有谁知道为什么会这样?

谢谢你。

4

1 回答 1

0

这可能是由于 sass 任务是异步运行的,我在 livereload 中遇到了类似的问题。

尝试这样的事情并在两个任务之间注册它:

  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

于 2014-10-07T22:56:19.753 回答