注意:此问题仅与Grunt 0.3.x有关,已留作参考。有关最新的Grunt 1.x版本的帮助,请参阅此问题下方的我的评论。
我目前正在尝试使用Grunt.js设置自动构建过程,以便首先进行串联,然后最小化CSS和JavaScript文件。
我已经能够成功地串联和最小化我的JavaScript文件,尽管每次运行grunt时,它似乎只是追加到文件中而不是覆盖它们。
至于缩小甚至连接CSS,到目前为止,我还无法做到这一点!
就笨拙的CSS模块而言,我尝试使用consolidate-css
,grunt-css
&,cssmin
但无济于事。无法理解如何使用它们!
我的目录结构如下(是一个典型的node.js应用程序):
- app.js
- grunt.js
- /public/index.html
- / public / css / [各种CSS文件]
- / public / js / [各种javascript文件]
这是我的grunt.js文件当前在我的应用程序的根文件夹中的样子:
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
pkg: '<json:package.json>',
concat: {
dist: {
src: 'public/js/*.js',
dest: 'public/js/concat.js'
}
},
min: {
dist: {
src: 'public/js/concat.js',
dest: 'public/js/concat.min.js'
}
},
jshint: {
options: {
curly: true,
eqeqeq: true,
immed: true,
latedef: true,
newcap: true,
noarg: true,
sub: true,
undef: true,
boss: true,
eqnull: true,
node: true
},
globals: {
exports: true,
module: false
}
},
uglify: {}
});
// Default task.
grunt.registerTask('default', 'concat min');
};
因此,总结一下,我需要两个问题的帮助:
- 如何将文件夹下的所有CSS文件串联并缩小
/public/css/
为一个文件,例如main.min.css
- 为什么grunt.js不断追加到串联和精缩的JavaScript文件
concat.js
,并concat.min.js
根据/public/js/
,而不是每一个命令时覆盖它们grunt
运行?
2016年7月5日更新-从Grunt 0.3.x升级到Grunt 0.4.x或1.x
Grunt.js
已移至中的新结构Grunt 0.4.x
(该文件现在称为Gruntfile.js
)。请参阅我的开源项目Grunt.js Skeleton,以获取有关为设置构建过程的帮助Grunt 1.x
。
从过渡Grunt 0.4.x
到Grunt 1.x
不应引入许多重大变化。
concat
在同一js
文件夹中,它不会把它挖出来并附加它,这对我来说从来没有发生过!我已经开始使用cssmin,效果很好!再次感谢。