Okay Sono stato bloccato su questo per 2 settimane, quindi spero che qualcun altro qui si sia imbattuto in questo problema. Sto cercando di usare Grunt per copiare solo i file che sono cambiati. Ho visto numerosi esempi su come farlo con JSLINT e UGLIFY ma nessun esempio specifico su come farlo con grunt-contrib-copy.Evento Grunt Watch con copia Grunt solo per file modificati
Quando si registra un evento di controllo e si passa il nome file alla sottotabella di copia, il nome del file è accessibile (lo sto disconnettendo), ma il file non viene mai copiato correttamente.
Spero che sia una cosa semplice che sto trascurando. Qualcuno potrebbe dare un'occhiata al mio codice e vedere cosa sto facendo male?
//Gruntfile.js:
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
options: {
base: 'app',
dist: 'dist',
},
copy: {
changedFiles: {
expand: true,
dot: true,
cwd: '<%= options.base %>',
src: ['**/*.*'],
dest: '<%= options.dist %>/'
}
},
watch: {
options: {
nospawn: true,
//debounceDelay: 1000,
},
css: {
files: ['app/css/*.css',
'app/js/*.js'
],
tasks: ['copy:changedFiles'],
}
}
});
grunt.event.on('watch', function(action, filepath, target){
grunt.log.writeln('target: ', target + '\n filepath: ' + filepath + '\n action: has ' + action);
grunt.config('copy.changedFiles.src', new Array(filepath));
});
//load our copy task
grunt.loadNpmTasks('grunt-contrib-copy');
//load our watch task
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.registerTask('copyChangedFiles', [
'watch:css'
]);
};
Fondamentalmente il mio impostazione della cartella in quanto tale:
-app
| - css
| - js
-dist
sto guardando la cartella applicazione e cercando di copiare i file che cambiano nella directory app e copiarli nella directory dist. La modifica dinamica della copia src non sembra funzionare.
L'attività di copia quando viene eseguita da sola con l'orologio e non sull'evento orologio funziona correttamente e copia tutti i file, ma sono interessato a copiare solo i file che cambiano.
ho provato anche una variante di questo evento nel mio orologio, senza alcun risultato:
var copyDest = filepath.replace(grunt.config('copy.changedFiles.dest'), '');
var copyCwd = filepath.replace(grunt.config('copy.changedFiles.cwd'), '');
grunt.config('copy.changedFiles.cwd' , copyCwd);
grunt.config(['copy', 'changedFiles', 'src'] , [filepath]);
Qualcuno ha fatto mai successo questo prima di utilizzare la copia grugnito? O c'è un altro compito che dovrei usare? Ho provato lo stesso con grunt-sync e non sembrava funzionare. Sono bloccato.
Grazie per l'aiuto.