【问题标题】:Grunt usemin issue: unable to process the task.required config property concat.generated missingGrunt usemin 问题:无法处理 task.required 配置属性 concat.generated 丢失
【发布时间】:2015-05-22 11:54:20
【问题描述】:

我有这样的文件夹结构

app
|
+- html
|   +- index.html
+- assets
|   +- js
|      +- foo.js
|      +- bar.js
+- dist

我的 Gruntfile.js 是

module.exports = function (grunt) {
  grunt.initConfig({
    config: {
      app: 'app',
      dist: 'dist'
    },
    useminPrepare: {
      html: 'html/index.html',
      options: {
        root: '<%= config.app %>',
        dest: '<%= config.dist %>'
      }
    },
    usemin: {
      html: ['<%= config.dist %>/html/index.html'],
      js: '<%= config.dist %>/assets/js/*.js'
    }
  });

  grunt.loadNpmTasks('grunt-contrib-clean');
  grunt.loadNpmTasks('grunt-rev');
  grunt.loadNpmTasks('grunt-usemin');
  grunt.loadNpmTasks('grunt-contrib-copy');
  grunt.loadNpmTasks('grunt-contrib-concat');
  grunt.loadNpmTasks('grunt-contrib-cssmin');
  grunt.loadNpmTasks('grunt-contrib-uglify'); 

  grunt.registerTask('build', [
     'useminPrepare',
     'concat:generated',
     'cssmin:generated',
     'uglify:generated',
     'usemin'
  ]);
};

在 html/index.html 中

<!-- build:js /assets/js/optimized.js -->
<script src="/assets/js/foo.js"></script>
<script src="/assets/js/bar.js"></script>
<!-- endbuild -->

当我执行“grunt build”命令时,它显示“无法处理 task.required 配置属性 concat.generated 缺失”错误。 可能是什么原因?

【问题讨论】:

  • 在我的情况下,这是因为我使用的是默认设置(与您的构建相同),但我的索引中没有 build:js 块。因此 usemin 没有配置 uglify 任务,因此在尝试作为“构建”的一部分调用时失败。简单的修复要么添加 build:js 块,要么从“build”中删除 uglify 任务

标签: gruntjs grunt-usemin


【解决方案1】:

如果您的 Gruntfile.js 位于根目录,那么您在 useminPrepare 任务中的 html 路径错误。我不确定 useminPrepare 是否理解“root”选项。试试这个:

useminPrepare: {
      html: 'app/html/index.html',
      options: {
        dest: '<%= config.dist %>'
      }
    }

【讨论】:

    猜你喜欢
    • 2016-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 2013-12-28
    • 2023-03-09
    相关资源
    最近更新 更多