Примечание. Этот вопрос относится только к 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 в настоящее время выглядит в корневой папке моего приложения:
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
?
Обновлено 5 июля 2016 г. - Обновление с 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
не должен вносить много важных изменений.