2012-12-14 2 views
14

Sto usando yeoman per un progetto.Come posso caricare due task grunt con lo stesso nome?

Fondamentalmente funziona bene, ma durante il processo di generazione voglio spostare la mia cartella di immagini in un altro posto.

Quindi ho caricato l'attività grunt-contrib-copy che mi consentiva di farlo. Ma sfortunatamente questo è in conflitto con l'attività di copia integrata dello yeoman.

C'è un modo per alias il grunt-contrib-copy nel mio Gruntfile.js così posso utilizzare entrambi?

grunt.loadNpmTasks('grunt-contrib-copy'); 

//Here I need to use "copy" again but not referencing the yeoman task but the grunt-contrib-copy task. 
grunt.registerTask('build','intro clean coffee compass mkdirs concat css min replace copy time'); 

risposta

30

grunt.renameTask() probabilmente ti aiuterà qui. Prova questo:

// temporarily rename yeoman's copy task 
grunt.renameTask('copy', 'yeomanCopy'); 
// load 'copy' from grunt-contrib-copy 
grunt.loadNpmTasks('grunt-contrib-copy'); 
// rename it to something other than 'copy' 
grunt.renameTask('copy', 'myCopy'); 
// rename yeoman's task back to its original name so nothing breaks 
grunt.renameTask('yeomanCopy', 'copy'); 

// now use 'myCopy' for your purposes 
// ... 
+0

Grazie, funziona! Anche se ho il problema che alcune attività controllano se una determinata attività è stata eseguita prima e non sanno della loro ridenominazione: -/ – acme

+0

Ma stai rinominando il compito del yeoman esistente subito, non è vero? –

+0

Oops, mi sono fermato a rinominare l'attività originale, ovviamente hai ragione. Grazie Dmitry! – acme