Есть ли способ установить интеллектуальные / динамические выходные файлы 'joinTo' в Brunch?

Сначала я опубликую пример того, как я "думаю", что он может быть определен в конфигурационном файле Brunch:

files:
    javascripts:
        joinTo:
             # $1 = first sub-match in RegExp
            'app_$1.js' : /^app_([a-z0-9]*)/
            'vendor.js' : /^vendor/

По сути, я пытаюсь найти способ иметь несколько выходов, основанных на названии каждого "приложения _??????" папки, в которых хранятся файлы Javascript.

Поэтому, если у вас есть эта структура папок, вы получите следующий вывод:

brunch_project/
    app_300x250/
        other.js
        app.js
        index.html
    app_728x90/
        other.js
        app.js
        index.html

    public/
        app_300x250.js
        app_300x250.html
        app_728x90.js
        app_728x90.html
        vendor.js

Примечание:
Правда, в конфигурации я не показал, как HTML будет переименовываться / объединяться так же, как файлы JS, но я бы хотел, чтобы он работал идеально. Бонусная пятерка для тех, кто показывает мне, как это делается!

1 ответ

Решение

Если у вас есть только два варианта, я бы предложил добавить такие файлы, как app_728x90.html внутри assets/ каталоги. Затем создайте подпапки с разрешениями внутри app/, И используйте это в регулярных выражениях.

Если вам нужно более двух вариантов, вы можете использовать код JavaScript / CoffeeScript для генерации joinTo пункт, как это:

joinTo = {}
for res in resolutions
  joinTo[res] = ///^app\/#{res}///

exports.config = files: javascripts: joinTo: joinTo
Другие вопросы по тегам