не удалось выполнить задание grunt uglify

При запуске grunt я получаю следующую ошибку:

Предупреждение: невозможно записать файл «client/dist/js/build.js» (код ошибки: не определен). Используйте --force, чтобы продолжить.

Конфиг uglify в моем Gruntfile.js :

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

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

Есть идеи, почему это происходит?


person Soroush Hakami    schedule 09.03.2013    source источник


Ответы (2)


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

Пытаться

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

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

person raffomania    schedule 12.03.2013

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

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

//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.
person GabLeRoux    schedule 13.07.2013
comment
+1 это отличное решение. В дополнение к этому, у меня есть файл package.json, сгенерированный с моими путями img, js и css, чтобы я мог ссылаться на них с помощью <%= pkg.path.js %> и т. д. - person Larry; 19.07.2013