我尝试在我的项目中使用 grunt-usemin 来缩小 JS 和 CSS 文件,但效果不佳。因此,我创建了简单的示例,例如 grunt-usemin 文档中的示例,但这也不起作用。
我的结构很简单:
.
├── Gruntfile.js
├── dist
│ └── js
├── index.html
├── js
│ ├── bar.js
│ └── foo.js
└── package.json
在index.html中,我有以下引用2个JS文件的 block :
<!-- 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 将被创建。但我收到此错误:
>> Destination dist/js/optimized.js not written because src files were empty.
>> No files created.
useminPrepare 生成的任务如下所示:
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' ] } ] } }
有人可以帮我吗,为什么没有创建 dist/js/optimized.js?
谢谢!
最佳答案
嗯,问题出在 grunt.registerTask('deploy', ['useminPrepare', 'uglify: generated']);
中。我忘记调用 concat: generated。
所以解决方案是:
grunt.registerTask('deploy', ['useminPrepare', 'concat:generated', 'uglify:generated']);
关于node.js - grunt-usemin src 文件为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31538162/