注意:这个问题仅适用于 Grunt 0.3.x,已经被保留作为参考。如需获取最新的 Grunt 1.x 版本,请参见我在此问题下面的评论。
我目前正在尝试使用 Grunt.js 来设置自动构建过程,首先要将 CSS 和 JavaScript 文件串联起来,然后将它们缩小。
我已经成功地将 JavaScript 文件串联和缩小了,但每次运行 grunt 时,似乎都是将文件附加到末尾,而不是覆盖原文件。
至于缩小甚至串联 CSS,迄今为止我还无法做到!
关于grunt CSS模块,我尝试使用consolidate-css、grunt-css和cssmin,但都没有成功。我无法理解如何使用它们!
我的目录结构如下(典型的node.js应用程序):
- app.js - grunt.js - /public/index.html - /public/css/[各种 css 文件] - /public/js/[各种 javascript 文件]
下面是我在应用程序根目录中的grunt.js文件的内容:
我目前正在尝试使用 Grunt.js 来设置自动构建过程,首先要将 CSS 和 JavaScript 文件串联起来,然后将它们缩小。
我已经成功地将 JavaScript 文件串联和缩小了,但每次运行 grunt 时,似乎都是将文件附加到末尾,而不是覆盖原文件。
至于缩小甚至串联 CSS,迄今为止我还无法做到!
关于grunt 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');
};
总结一下,我需要两个问题的帮助:
- 如何将文件夹
/public/css/
中的所有CSS文件合并并压缩到一个文件中,比如main.min.css
- 为什么每次运行命令
grunt
时,Grunt.js
会继续添加到/public/js/
下的已合并和压缩的JavaScript文件concat.js
和concat.min.js
而不是覆盖它们?
更新于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了,效果非常好!再次感谢。 - Jasdeep Khalsaconcat.min.css
和concat.min.js
。如果我修改了一些东西,重新运行和部署,人们将无法获取最新版本,因为浏览器已经缓存了它。有没有一种方法可以随机命名文件并根据适当的<link>
和<script>
标签链接它们? - Tárcio Zemelconcat.min-<%= pkg.version %>.js
。 - Rui Nunes.dest
:cssmin: { css:{ src: '<%= concat.css.dest %>', dest: './css/all.min.css' } }
这是操作concat -> css
的结果。 - Ivan Black