2015-07-21 67 views
2

我正在尝试在我的项目中使用grunt-usemin来缩小JS和CSS文件,但它不起作用。所以我创建了一个简单的例子,就像grunt-usemin文档一样,这也是行不通的。grunt-usemin src文件为空

我有简单的结构:

. 
├── Gruntfile.js 
├── dist 
│ └── js 
├── index.html 
├── js 
│ ├── bar.js 
│ └── foo.js 
└── package.json 

index.html中我具有以下参照2个JS文件块:

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

我Gruntfile.js:

module.exports = function(grunt) { 
// Project configuration. 
    grunt.initConfig({ 
    pkg: grunt.file.readJSON('package.json'), 
    useminPrepare: { 
     html: 'index.html', 
     options: { 
      dest: 'dist' 
     } 
    }, 
    usemin: { 
     html: ['index.html'] 
    }, 
    filerev: { 
     options: { 
     algorithm: 'md5', 
     length: 8 
     }, 
     js: { 
     src: 'js/optimized.js', 
     dest: 'js/' 
     } 
    } 
    }); 

    grunt.loadNpmTasks('grunt-contrib-uglify'); 
    grunt.loadNpmTasks('grunt-contrib-cssmin'); 
    grunt.loadNpmTasks('grunt-contrib-concat'); 
    grunt.loadNpmTasks('grunt-filerev'); 
    grunt.loadNpmTasks('grunt-usemin'); 

    // Register tasks 
    grunt.registerTask('deploy', ['useminPrepare', 'uglify:generated']); 
// grunt.registerTask('deploy', ['useminPrepare', 'uglify:generated', 'usemin']); 

}; 

当我运行grunt deploy -v我期望,js/optimized.js将被创建。但是,我得到这个错误:由useminPrepare产生

>> Destination dist/js/optimized.js not written because src files were empty. 
>> No files created. 

任务是这样的:

有人可以帮我,为什么DIST/JS /未创建
Going through index.html to update the config 
Looking for build script HTML comment blocks 

Configuration is now: 

    concat: 
    { generated: 
    { files: 
     [ { dest: '.tmp/concat/js/optimized.js', 
      src: [ 'js/foo.js', 'js/bar.js' ] } ] } } 

    uglify: 
    { generated: 
    { files: 
     [ { dest: 'dist/js/optimized.js', 
      src: [ '.tmp/concat/js/optimized.js' ] } ] } } 

optimized.js?

谢谢!

+0

你如何检查这是由useminPrepare生成的任务 – Gerfried

回答

0

嗯问题在grunt.registerTask('deploy', ['useminPrepare', 'uglify:generated']);。我忘了调用concat:生成。

所以,解决办法是:

grunt.registerTask('deploy', ['useminPrepare', 'concat:generated', 'uglify:generated']);