Grunt-uglify рекурсивно

У меня есть набор подпапок с некоторыми файлами *.dev.js. Мне нужно grunt, чтобы их испортить и создать испорченные файлы рядом с исходными файлами для каждого файла .dev.js в дереве каталогов. Вот как я пытаюсь это сделать:

uglify: {
  options: {
    banner: '/*! <%= pkg.name %> <%= grunt.template.today("dd-mm-yyyy") %> */\n'
  },
  dist: {
    files: {
      src: '/folder/**/*.dev.js',
      ext: '.js',
      flatten: true,
      expand: true
    }
  }
}

Но это дает ошибку:

Запуск задачи «uglify:dist» (uglify) Созданный файл src: 13,49 КБ → 5,62 КБ

Адрес назначения не записан, так как файлы src пусты. Предупреждение: Объект true не имеет метода indexOf. Используйте --force для продолжения.


person Laurent    schedule 13.06.2014    source источник


Ответы (1)


Я видел ваш вопрос, потому что у меня была такая же проблема, ответ для всех, кто видит это (например, я):

  • Вы используете "src: '/folder/**/*.dev.js'"
  • Ошибка в первой косой черте (/folder), grunt/nodejs ищет в папке «папка» в корне вашего диска, а не в корне вашего приложения (например, c:\folder или OSX\folder).
  • Решение состоит в том, чтобы удалить первую косую черту или использовать точку перед косой чертой «.\folder», полное решение должно быть таким:

    uglify: {
      options: {
        banner: '/*! <%= pkg.name %> <%= grunt.template.today("dd-mm-yyyy") %> */\n'
      },
      dist: {
        files: [{
          src: './folder/**/*.dev.js',
          ext: '.js',
          flatten: true,
          expand: true
        }]
      }
    }
    

Кроме того, не спрашивайте меня, почему я только что узнал о grunt 1 час назад, вам нужно, но значение файлов внутри массива javascript [{ }] (а не только фигурные скобки), изоляция объекта «файлы» выглядит так:

    files: [{
      src: './folder/**/*.dev.js',
      ext: '.js',
      flatten: true,
      expand: true
    }]
person Amílcar Calles    schedule 22.10.2014