我有一个简单的Gruntfile,使用带有Yeoman生成器的基本默认配置的usemin。我需要能够创建一个新的html文件,而不是重写html文件。这是我希望的工作:
useminPrepare: {
html: 'index.tpl',
options: {
dest: '.',
flow: {
html: {
steps: {
js: ['concat', 'uglifyjs'],
css: ['cssmin']
},
post: {}
}
}
}
},
usemin: {
html: {
src: 'index.tpl',
dest: 'index.html'
}
}
这样的事情可能吗?
答案 0 :(得分:0)
这还不可能。 实际上唯一的方法是使用grunt-contrib-copy(或这样的插件)来复制index.html文件,然后使用usemin任务更改副本。
以下是此解决方案的示例: (来自mvolkmann在https://github.com/yeoman/grunt-usemin/issues/176的帖子)
module.exports = function (grunt) {
grunt.initConfig({
clean: ['build'],
copy: {
html: { // in preparation for usemin
files: [
{src: 'index.html', dest: 'build/'}
]
}
},
uglify: {
all: {
files: {
'build/output.min.js': ['lib/angular.min.js', 'scripts/*.js']
}
}
},
useminPrepare: {
options: {dest: 'build'}
},
usemin: {
html: 'build/index.html', // must have this
//css: '*.css',
options: {
dirs: ['lib', 'scripts']
}
},
});
var tasks = [
'grunt-contrib-clean',
'grunt-contrib-copy',
'grunt-contrib-cssmin',
'grunt-contrib-uglify',
'grunt-usemin'
];
tasks.forEach(grunt.loadNpmTasks);
grunt.registerTask('min', ['copy', 'useminPrepare', 'uglify', 'usemin']);
};