注意:此问题仅与 Grunt 0.3.x 相关,已留作参考。有关最新 Grunt 1.x 版本的帮助,请参阅我在此问题下方的评论。
我目前正在尝试使用 Grunt.js 来设置一个自动构建过程,用于首先连接然后缩小 CSS 和 JavaScript 文件。
我已经能够成功地连接和缩小我的 JavaScript 文件,尽管每次运行 grunt 时它似乎只是附加到文件而不是覆盖它们。
至于缩小甚至连接 CSS,到目前为止我还无法做到这一点!
就 grunt CSS module而言,我尝试使用consolidate-css
, grunt-css
&cssmin
但无济于事。无法理解如何使用它们!
我的目录结构如下(是一个典型的 node.js 应用程序):
- 应用程序.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
不应该引入许多重大变化。