bem/project-stub

Add cli interface for building specific bundle

skad0 opened this issue · 4 comments

skad0 commented

@tadatuta:

как на счет того, чтобы если в process.argv есть строка, которая матчится на один из существующих бандлов, то собирать только этот бандл, а не все? сработает?

Надо обсудить какой должен быть интерфейс и какой мы хотим.

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

@zxqfox @blond @vithar

blond commented

Можно посмотреть на gulp-param. Удобно тем, что у тасок появляется нормальное API.

API может выглядеть так:

# собрать всё
$ gulp build

# собрать все бандлы платформы `desktop`
$ gulp build --platform=desktop

# собрать `index` бандл для всех платформы
$ gulp build --bundle=index

# собрать CSS для всех платформ
$ gulp build --tech=css

# собрать CSS для `index` бандла платформы `desktop`
$ gulp build --platform=desktop --bundle=index --tech=css

Это удобнее, чем явная привязка к пути аля ENB. На проекте можно вносить ровно столько кастомщины в CLI сколько потребуется.

В качестве парсера CLI аргументов предлагаю использовать meow. В нашем случае читаемость конфига очень важна.

Можно написать gulp-meow по аналогии с gulp-param.

qfox commented
  1. Sindresorhus
  2. minimist
  3. COA

Можно написать gulp-meow по аналогии с gulp-param.

Хм... Нет ;-) сс @Yeti-or

blond commented

@zxqfox твой ответ не ясен )

мне вариант с таргетами на FS нравится по трем причинам:

  1. не нужно знать слов «платформа», «бандл», «технология», просто «enb, сделай мне файл desktop.bundles/index/index.css»
  2. это все не нужно писать руками, т.к. работает автокомплит
  3. средствами шелла обеспечиваются всякие штуки типа *.bundles/* или index.{css,js}

хочется не потерять эти фичи.