Grunt: Assista vários arquivos, Compile apenas mudou
Sou novo no Grunt e até agora estou gostando muito. Eu quero que o Grunt compile apenas os arquivos alterados quando executandogrunt watch
No meu Grunfile.coffee eu tenho atualmente (partes relevantes).
Nota: assets / javascript / app.coffee e assets / javascript / app.js são diretórios
coffee:
default:
expand: true
cwd: "assets/javascript/app.coffee"
src: ["*.coffee"]
dest: "assets/javascript/app.js"
ext: ".js"
uglify:
dev:
options:
beautify: true
compress: false
mangle: false
preserveComments: 'all'
files:
"js/app.js": "assets/javascript/app.js/*.js"
"js/libs.js": "assets/javascript/libs/*.js"
watch:
coffeescript:
files: 'assets/javascript/**/*.coffee'
tasks: ["coffee"]
javascript:
files: "assets/**/*.js"
tasks: ["uglify:dev"]
livereload:
files: ["Gruntfile.coffee", "js/*.js", "*.php", "css/*.css", "images/**/*.{png,jpg,jpeg,gif,webp,svg}", "js/*.js", ]
options:
livereload: true
Provavelmente há um caminho mais curto, mas estou compilando app.coffee para app.js primeiro, de modo que depois de distribuir meu trabalho, as pessoas que não se sentem confortáveis com o Coffeescript podem navegar no código de maneira razoavelmente razoável.
O problema com tudo isso é que agora que eu salvo um arquivo do Coffeescript, eu recebo muitos passos (eu acho):
>> File "assets/javascript/app.coffee/browse.coffee" changed.
Running "coffee:default" (coffee) task
File assets/javascript/app.js/browse.js created.
File assets/javascript/app.js/filters.js created.
Done, without errors.
Completed in 0.837s at Tue May 28 2013 12:30:18 GMT+0300 (EEST) - Waiting...
OK
>> File "assets/javascript/app.js/browse.js" changed.
>> File "assets/javascript/app.js/filters.js" changed.
Running "uglify:dev" (uglify) task
File "js/app.js" created.
File "js/libs.js" created.
Done, without errors.
Completed in 0.831s at Tue May 28 2013 12:30:19 GMT+0300 (EEST) - Waiting...
OK
>> File "js/app.js" changed.
>> File "js/libs.js" changed.
Completed in 0.000s at Tue May 28 2013 12:30:19 GMT+0300 (EEST) - Waiting...
Atualmente, estou apenas configurando meu projeto, mas terei muito mais arquivos do Coffeescript e não quero que o Coffeescript recompile todos os arquivos, em cada alteração de arquivo.
Além disso, o libs.js não faz parte de tudo isso, mas eu acho que ele ainda é compilado, porque ele também corresponde ao "assets / */.js "padrão.
Existe uma maneira de fazer o Grunt compilar apenas os arquivos que foram alterados?