Webassets - исключить файл в комплекте

У меня есть каталог, и я хочу исключить несколько файлов, как это делает Ant, возможно ли это с веб-наборами?

Или, если bundle может принимать список или кортеж, что, похоже, не так?

1 ответ

Решение

Bundle Подпись конструктора выглядит следующим образом (из источника на github):

def __init__(self, *contents, **options):

Это означает, что содержимое может быть указано как серия позиционных аргументов, как в примере в документации:

Bundle('common/inheritance.js', 'portal/js/common.js',
   'portal/js/plot.js', 'portal/js/ticker.js',
   filters='jsmin',
   output='gen/packed.js')

Но это также означает, что вы можете использовать способность Python распаковывать списки аргументов. С этой страницы:

Обратная ситуация возникает, когда аргументы уже находятся в списке или кортеже, но должны быть распакованы для вызова функции, требующей отдельных позиционных аргументов. Например, встроенная функция range() ожидает отдельные аргументы start и stop. Если они недоступны отдельно, напишите вызов функции с оператором *, чтобы распаковать аргументы из списка или кортежа

Так что вы можете легко написать приведенный выше пример как:

files = ['common/inheritance.js', 'portal/js/common.js', 
         'portal/js/plot.js', 'portal/js/ticker.js']
Bundle(*files, filters='jsmin', output='gen/packed.js')

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

Другие вопросы по тегам