2013-03-20 15 views
31

Appena installato l'ultimo Grunt su Ubuntu 12.04. Qui è la mia gruntfile:Grunt Concat non può scrivere nel file

module.exports = function(grunt){ 
//project configuration 
grunt.initConfig({ 
    pkg: grunt.file.readJSON('package.json'), 

    concat: { 
     slides : { 
      src : ['src/top.html', 'src/bottom.html'], 
      dest : ['build/index.html'] 
     } 
    } 
}); 

//enable plugins 
grunt.loadNpmTasks('grunt-contrib'); 
grunt.registerTask('default', ['concat:slides']); 
} 

Questo crea la multa build/directory, ma mi dà l'output di:

Running "concat: scivoli" (concat) compito Attenzione: Impossibile scrivere " build/index.html "file (codice di errore: non definito). Utilizzare --force su continuare.

ho provato a fare funzionare chmod 777 sulla directory, come ho pensato che potrebbe avere qualcosa a che fare con i permessi, ma che non sembrano cambiare nulla.

Come posso farlo in modo che Grunt scriva per compilare/index.html?

risposta

82

capito:

//Does not work 
dest : ['build/index.html'] 

Funziona come una stringa, ma non un array:

//Works 
dest : 'build/index.html' 
+1

Ho avuto lo stesso problema, ho trovato una domanda simile e ho dato [una risposta dettagliata] (http://stackoverflow.com/a/17626981/1092815) in base alla risposta. Tutti i crediti vanno a te, grazie mille :) – GabLeRoux

+0

Questa risposta mi ha aiutato a correggere un altro errore di sintassi. Assicurati di usare 'dest' e non 'dst'. –

+0

grazie, mi ha davvero salvato bacon ... tempo saggio :) –

0

ho cambiato compiti/concat.js di accettare le matrici per dest:

// Write the destination file. 
// If f.dest is an array take the first element 
var dest = ([].concat(f.dest))[0] 
grunt.file.write(dest, src); 

ma in seguito ho deciso di utilizzare il modulo dei file anziché src/dest:

files: { 'dest.js': ['a.js', 'b.js'] } 
Problemi correlati