Моя цель - собрать свой проект в двух отдельных папках сборки, каждая со своими собственными задачами Grunt.
Я заметил, что у grunt-cli
есть опция --gruntfile
, которая позволяет вам указать другой Gruntfile для использования. Пока у меня Gruntfile.js
работает отлично (рядом сток от Йомана). Кроме того, рядом со мной сидит еще один Gruntfile2.js
.
Gruntfile.js
var yeomanConfig = {
app: 'app',
dist: '../www_browser'
};
Gruntfile2.js
var yeomanConfig = {
app: 'app',
dist: '../www'
};
grunt build
предназначен для запуска Gruntfile.js, и делает это отлично.
grunt build --gruntfile Gruntfile2.js
предназначен для запуска Gruntfile2.js
, и делает это с некоторыми сбоями. (предполагается, что сборка осуществляется в ../www
папку НЕ ../www_browser
папку)
Директива --gruntfile создает соответствующую папку почти для каждой задачи, кроме grunt-usemin и gunt-contrib-htmlmin. Я знаю это из-за этого вывода на консоль здесь:
Running "usemin:css" (usemin) task
Processing as CSS - ../www_browser/styles/22f60055.main.css
Running "concurrent:dist" (concurrent) task
Running "htmlmin:dist" (htmlmin) task
File ../www_browser/404.html created.
File ../www_browser/index.html created.
Вы заметите ../www_browser здесь, в выводе консоли. Все остальные задачи выполняются в ожидаемой папке ../www.
Это кеш-память usemin? Ворчание кеша штука? Или некоторые задачи просто запускаются из Gruntfile.js по умолчанию независимо от директивы --gruntfile Gruntfile2.js
?
На данный момент я отказался от попыток выполнить несколько целей из одного файла Grunt. В Yeoman Gruntfile.js слишком много зависимостей, которые еще не поддерживают несколько целей сборки, и я потратил 12 часов безрезультатно на этот подход.
Информация о версии
$: grunt --version
grunt-cli v0.1.9
grunt v0.4.1
$: npm --version
1.2.25
$: yo --version
1.0.3
package.json
{
"name": "myapp",
"version": "0.0.0",
"dependencies": {},
"devDependencies": {
"grunt": "~0.4.1",
"grunt-contrib-copy": "~0.4.1",
"grunt-contrib-concat": "~0.1.3",
"grunt-contrib-coffee": "~0.6.5",
"grunt-contrib-uglify": "~0.2.0",
"grunt-contrib-compass": "~0.2.0",
"grunt-contrib-jshint": "~0.4.1",
"grunt-contrib-cssmin": "~0.6.0",
"grunt-contrib-connect": "~0.2.0",
"grunt-contrib-clean": "~0.4.0",
"grunt-contrib-htmlmin": "~0.1.3",
"grunt-bower-requirejs": "~0.4.1",
"grunt-contrib-requirejs": "~0.4.0",
"grunt-contrib-imagemin": "~0.1.3",
"grunt-contrib-watch": "~0.4.0",
"grunt-rev": "~0.1.0",
"grunt-usemin": "~0.1.10",
"grunt-mocha": "~0.3.0",
"grunt-open": "~0.2.0",
"grunt-svgmin": "~0.1.0",
"grunt-concurrent": "~0.1.0",
"matchdep": "~0.1.1",
"connect-livereload": "~0.2.0"
},
"engines": {
"node": ">=0.8.0"
}
}
grunt build --gruntfile Gruntfile2.js
? - person badsyntax   schedule 27.08.2013