Грунтовое копирование Сглаживание не работает должным образом

У меня есть структура каталогов следующим образом:

source/
    libraries/
        d3.js
        lodash.js
        //etc

У меня есть настройка копирования на грунт следующим образом:

copy: {
  main: {
    files: [
      {
        src: ["source/libraries/*.js"], 
        dest: "build/", 
        flatten: true
      }

Я ожидаю, что он сгладит вывод в сборке, так что у меня будет

build/
    d3.js
    //etc

Вместо этого я получаю воспроизведение исходной структуры каталога в сборке:

build/
    source/
        libraries/
            d3.js
            //etc

Что дает? Я не использую сглаживание правильно?

Ответы

Ответ 1

Ну, если вы используете только flatten, потому что хотите, чтобы все в source/libraries перешло в build, я бы предложил использовать вместо этого вариант cwd (текущий рабочий каталог). Если, с другой стороны, у вас действительно есть подпапки в source/libraries, то вы, вероятно, хотите, чтобы строка src была source/libraries/**/*.js.

В любом случае, если вы можете использовать cwd, это будет выглядеть так:

copy: {
  main: {
    files: [
      {
        src: ["*.js"],
        dest: "build/",
        cwd: "source/libraries/"
      }
    ]
  }

В другом случае, может быть, это? (Обратите внимание, что параметр expand установлен на true)

copy: {
  main: {
    files: [
      {
        src: ["source/libraries/**/*.js"],
        dest: "build/",
        flatten: true,
        expand: true
      }
    ]
  }
}