2013-03-09 3 views
6

При запуске хрюкать, я получаю следующее сообщение об ошибке:хрюкать уродовать задача не суметь

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

В конфиг уродовать в моем Gruntfile.js:

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

Я использую grunt-contrib-uglify.

Любые идеи, почему это происходит?

ответ

15

Предполагая, что ваша версия Grunt 0.4.0, AFAIK вы не используете последний синтаксис (см. https://github.com/gruntjs/grunt-contrib-uglify#usage-examples).

Попробуйте

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

Я также не уверен, что специальные символы обрабатываются должным образом.

+0

работал как шарм, спасибо. –

15

Я знаю, что это отмечено как решено, но я по-прежнему предпочитаю this answer from a similar question, потому что вы можете легко использовать файлы снова для другой команды, не записывая их дважды.

Короче говоря, ответ говорит

//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' 

Испытано работает пример без записи файлов дважды:

'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' 
    ]); 
}; 

Обратите внимание, что '<%= uglify.build.src %>' очень удобно;)

Исполнение

$ 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 это отличное решение. В дополнение к этому, у меня есть пакет package.json, сгенерированный с помощью моих путей img, js и css, чтобы я мог ссылаться на них с помощью '<% = pkg.path.js%>' и т. Д. – Larry

Смежные вопросы