【发布时间】: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