ВНИМАНИЕ! Этот проект в разработке (призван систематизировать мои личные наработки из области вёрстки), я добавляю и меняю в нем довольно много всего. Это даже не альфа. Периодически может выглядеть странно и не менее странно работать.
Установка: выполнить в папке проекта: `npm i`.
Установка: `npm i`.
Использование: `npm start` (дабы не ставить глобально 4-ю версию gulp, которая сейчас в альфе). После `npm start` можно через пробел указать задачу. К примеру `npm start less` выполнит только задачу `less` из `gulpfile.js` (полный список задач смотри в `gulpfile.js`).
`port=3004 npm start` — для запуска сервера автообновлений на указанном порту.
Использование: `npm start`. После `npm start` можно через пробел указать задачу. К примеру `npm start less` выполнит только задачу `less` из `gulpfile.js` (полный список задач смотри в `gulpfile.js`).
`npm run build` — сборка проекта без карт кода (минифицированный вид, как результат работы).
`npm run deploy` — сборка проекта без карт кода и отправка содержимого папки сборки на GH-pages (для корректного сообщения адреса просмотра введите его в `package.json`).
- Есть диспетчер подключений `/src/less/style.less`. Если в нем импортирован less-файл какого-либо блока, этот блок считается используемым (обрабатывается его js и доп. файлы).
- Для разметки можно использовать [микрошаблонизацию](https://www.npmjs.com/package/gulp-file-include) — обычное включение разметки мелких файлов внутрь больших файлов с возможностью передавать какие-то данные в мелкие файлы. А можно и не использовать.
-**Перед коммитом происходит проверка `.less`-файлов** на соответствие правилам Stylelint (см. `.stylelintrc` в корне проекта). Если выявлены ошибки, коммит не будет создан, нужно исправить ошибки, переиндексировать файлы и сделать коммит.
...
...
@@ -31,14 +36,13 @@
```bash
demo-block/ # Папка блока
img/ # Изображения, используемые блоком и обрабатываемые автоматикой сборки
img_to_bg/ # Изображения, не обрабатываемые автоматикой сборки (имя папки — любое, обрабатываются только изображения из папки img/ внутри папки блока (см. предыдущую строку)
some-folder/ # Какая-то сторонняя папка, не обрабатываемые автоматикой
demo-block.less # Главный стилевой файл блока
demo-block--mod.less # Отдельный файл модификатора блока (если объемный и нужен не на всех проектах)
demo-block--mod.less # Отдельный файл БЭМ-модификатора блока
demo-block.js # Главный js-файл блока
demo-block--mod.js # js-файл для отдельного модификатора блока
demo-block--mod.js # js-файл для отдельного БЭМ-модификатора блока
demo-block.html # Варианты разметки (как документация блока или как вставляемый микрошаблонизатором фрагмент)
demo-block.css # Добавочный css (копируется как отдельный файл в `build/css`)
library.js # Дополнительная js-библиотека, берется в конкатенируемый js-файл проекта (имя любое, в конкатенацию берется перед всеми прочими файлами, повторения ищутся по имени файла)
readme.md # Какое-то пояснение
```
...
...
@@ -47,8 +51,9 @@ demo-block/ # Папка блока
```bash
# формат: node createBlock.js [имя блока] [доп. расширения через пробел]
node createBlock.js block # создаст только папку, block.html и block.less
fileContent='// Для импорта в диспетчер подключений: '+LESSfileImport+'\n\n@import \'../../less/variables.less\'; // только для удобства обращения к переменным\n\n\n.'+blockName+' {\n \n}\n';
fileCreateMsg='[NTH] Для импорта стилей: '+LESSfileImport;
// fileCreateMsg = '[NTH] Для импорта стилей: ' + LESSfileImport;
// Создаем регулярку с импортом
letreg=newRegExp(LESSfileImport,'');
...
...
@@ -92,7 +92,7 @@ if(blockName) {
// Если это HTML
elseif(extention=='html'){
fileContent='<!--DEV\n\nНужно убрать пробел между @-ами:\n\n@ @include(\'blocks/'+blockName+'/'+blockName+'.html\')\n\n-->\n<div class="'+blockName+'">content</div>\n';
fileCreateMsg='[NTH] Для вставки разметки: @@include(\'blocks/'+blockName+'/'+blockName+'.html\') Подробнее: https://www.npmjs.com/package/gulp-file-include';
fileCreateMsg='[NTH] Для вставки разметки: @@include(\'blocks/'+blockName+'/'+blockName+'.html\') Подробнее: https://www.npmjs.com/package/gulp-file-include';