2013-03-09 25 views
6

Uruchamiając chrząknięcie, pojawia się następujący błąd:grunt zadanie zeszpecić braku

Warning: Unable to write "client/dist/js/build.js" file (Error code: undefined). Use --force to continue.

config z zeszpecić w moim Gruntfile.js:

uglify: { 
     build: { 
     src: ['client/src/js/*.js'], 
     dest:['client/dist/js/build.js'] 
     } 
    } 

używam grunt-contrib-uglify.

Jakieś pomysły, dlaczego tak się dzieje?

Odpowiedz

15

Zakładając, że Twoja wersja Grunt to 0.4.0, AFAIK nie używasz najnowszej składni (zobacz https://github.com/gruntjs/grunt-contrib-uglify#usage-examples).

Spróbuj

uglify: { 
    build: { 
     files: { 
      'client/dist/js/build.js': ['client/src/js/*.js'] 
     } 
    } 
} 

Jestem również pewien, czy dzikie karty są prawidłowo obsługiwane.

+0

zadziałało jak wdzięk, dzięki. –

15

Wiem, że jest oznaczony jako rozwiązany, ale nadal wolę this answer from a similar question, ponieważ można łatwo użyć plików ponownie dla innego polecenia bez zapisywania ich dwa razy.

Krótko mówiąc, odpowiedź mówi

//Does not work 
src: ['client/src/js/*.js'], 
dest: ['client/dist/js/build.js'] 
//Works 
src: ['client/src/js/*.js'], 
dest: 'client/dist/js/build.js' 

Testowany przykład pracy bez zapisywania plików dwukrotnie:

'use strict'; 
module.exports = function(grunt) { 
    grunt.initConfig({ 
    uglify: { 
     build: { 
     src: ['client/src/js/*.js'], 
     dest: 'client/dist/js/build.js' 
     } 
    }, 
    watch: { 
     js: { 
     files: '<%= uglify.build.src %>', 
     tasks: ['uglify'] 
     } 
    } 
    }); 
    grunt.loadNpmTasks('grunt-contrib-uglify'); 
    grunt.loadNpmTasks('grunt-contrib-watch'); 
    grunt.registerTask('default', [ 
    'uglify', 
    ]); 
    grunt.registerTask('dev', [ 
    'watch' 
    ]); 
}; 

Zauważ, że '<%= uglify.build.src %>' jest bardzo wygodne;)

Wykonanie

$ grunt watch 
Running "watch" task 
Waiting...OK 
>> File "client/src/js/hello.js" changed. 
Running "uglify:build" (uglify) task 
File "client/dist/js/build.js" created. 
Uncompressed size: 15 bytes. 
Compressed size: 32 bytes gzipped (15 bytes minified). 

Done, without errors. 
+1

+1 To jest świetne rozwiązanie. Oprócz tego mam wygenerowany mój plik package.json z moimi ścieżkami img, js i css, dzięki czemu mogę odwoływać się do nich za pomocą '<% = pkg.path.js%>' itd. – Larry

Powiązane problemy