Add cli interface for building specific bundle
skad0 opened this issue · 4 comments
как на счет того, чтобы если в process.argv есть строка, которая матчится на один из существующих бандлов, то собирать только этот бандл, а не все? сработает?
Надо обсудить какой должен быть интерфейс и какой мы хотим.
Мы уже знаем, что придется какой-нибудь флаг передать, потому что аргументы все пойдут для галпа как название таска.
Можно посмотреть на 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
.
- Sindresorhus
- minimist
- COA
Можно написать gulp-meow по аналогии с gulp-param.
Хм... Нет ;-) сс @Yeti-or
мне вариант с таргетами на FS нравится по трем причинам:
- не нужно знать слов «платформа», «бандл», «технология», просто «enb, сделай мне файл desktop.bundles/index/index.css»
- это все не нужно писать руками, т.к. работает автокомплит
- средствами шелла обеспечиваются всякие штуки типа
*.bundles/*
илиindex.{css,js}
хочется не потерять эти фичи.