Commit 17eb35d2 authored by Nikolay Gromov's avatar Nikolay Gromov

создание блоков автоматом

parent bd44bce7
...@@ -28,12 +28,23 @@ block-name/ # Папка блока ...@@ -28,12 +28,23 @@ block-name/ # Папка блока
demo-block.less # Главный стилевой файл блока demo-block.less # Главный стилевой файл блока
demo-block--mod.less # Отдельный файл модификатора блока (если объемный и нужен не на всех проектах) demo-block--mod.less # Отдельный файл модификатора блока (если объемный и нужен не на всех проектах)
demo-block.js # Главный js-файл блока demo-block.js # Главный js-файл блока
demo-block--mod.js # js-файл для отдельного модификатора блока demo-block--mod.js # js-файл для отдельного модификатора блока
demo-block.html # Варианты разметки (только как документация блока или как вставляемый фрагмент) demo-block.html # Варианты разметки (только как документация блока или как вставляемый фрагмент)
demo-block.css # Добавочный css (копируется как отдельный файл в `build/css`) demo-block.css # Добавочный css (копируется как отдельный файл в `build/css`)
readme.md # Какое-то пояснение readme.md # Какое-то пояснение
``` ```
### Удобное создание нового блока
```bash
node createBlock.js [имя блока] [доп. расширения через пробел]
```
По умолчанию будут созданы `.html` и `.less` файлы, в них будет записан стартовый контент.
Если блок уже существует, файлы не будут затёрты, но создадутся те файлы, которые ещё не существуют.
## Подключение блоков ## Подключение блоков
......
'use strict'; 'use strict';
// Использование: node createBlock.js [имя блока] [доп. расширения через пробел]
const fs = require('fs'); const fs = require('fs');
const pjson = require('./package.json'); const pjson = require('./package.json');
const dirs = pjson.config.directories; const dirs = pjson.config.directories;
const mkdirp = require('mkdirp'); const mkdirp = require('mkdirp');
// Использование: run node createBlock.js [BLOCK_NAME] [additional extensions]
let blockName = process.argv[2]; let blockName = process.argv[2];
let defaultExtensions = ['html', 'less']; let defaultExtensions = ['html', 'less']; // расширения по умолчанию
let extensions = uniqueArray(defaultExtensions.concat(process.argv.slice(3))); let extensions = uniqueArray(defaultExtensions.concat(process.argv.slice(3)));
if (blockName) { if(blockName) {
let dirPath = dirs.blocks + '/' + blockName + '/'; let dirPath = dirs.blocks + '/' + blockName + '/';
if(!fileExist(dirPath)) { mkdirp(dirPath, function(err){
if(err) {
} console.error('---------- Отмена операции: ' + err);
else { }
console.log('---------- Отмена операции: блок ' + dirPath + ' уже существует'); else {
} extensions.forEach(function(extention){
// console.log(fileExist(dirPath)); let filePath = dirPath + blockName + '.' + extention;
// mkdirp(dirPath, function(err){ let fileContent = '';
// if (err) { if(extention == 'less') {
// console.error(err); fileContent = '.' + blockName + ' {\n \n}\n';
// } }
// else { else if(extention == 'html') {
// extensions.forEach(function(extention){ fileContent = '<div class="' + blockName + '">content</div>\n';
// fs.closeSync(fs.openSync(path.join(dirPath, blockName + '.' + extention), 'w')); }
// }); if(fileExist(filePath) === false) {
// } fs.writeFile(filePath, fileContent, function(err) {
// }) if(err) {
return console.log('---------- Файл не создан: ' + err);
}
console.log('---------- Файл создан: ' + filePath);
});
}
else {
console.log('---------- Файл не создан: ' + filePath + ' уже существует');
}
});
}
});
}
else {
console.log('---------- Отмена операции: не указан блок');
} }
// Оставить в массиве только уникальные значения (убрать повторы) // Оставить в массиве только уникальные значения (убрать повторы)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment