Commit 11d18c83 authored by Nikolay Gromov's avatar Nikolay Gromov

Update createBlock.js

parent c65b922a
......@@ -2,35 +2,43 @@
// Использование: node createBlock.js [имя блока] [доп. расширения через пробел]
const fs = require('fs');
const pjson = require('./package.json');
const dirs = pjson.config.directories;
const mkdirp = require('mkdirp');
const fs = require('fs'); // будем работать с файловой системой
const pjson = require('./package.json'); // получим настройки из package.json
const dirs = pjson.config.directories; // отдельно имеем объект с директориями (где лежаи папка с блоками)
const mkdirp = require('mkdirp'); // зависимость
let blockName = process.argv[2];
let blockName = process.argv[2]; // получим имя блока
let defaultExtensions = ['html', 'less']; // расширения по умолчанию
let extensions = uniqueArray(defaultExtensions.concat(process.argv.slice(3)));
let extensions = uniqueArray(defaultExtensions.concat(process.argv.slice(3))); // добавим введенные при вызове расширения (если есть)
// Если есть имя блока
if(blockName) {
let dirPath = dirs.source + '/blocks/' + blockName + '/';
mkdirp(dirPath, function(err){
let dirPath = dirs.source + '/blocks/' + blockName + '/'; // полный путь к создаваемой папке блока
mkdirp(dirPath, function(err){ // создаем
// Если какая-то ошибка — покажем
if(err) {
console.error('[NTH] Отмена операции: ' + err);
}
// Нет ошибки, поехали!
else {
console.log('[NTH] Создание папки ' + dirPath + ' (создана, если ещё не существует)');
// Обходим массив расширений и создаем файлы, если они еще не созданы
extensions.forEach(function(extention){
let filePath = dirPath + blockName + '.' + extention;
let fileContent = '';
let fileCreateMsg = '';
let filePath = dirPath + blockName + '.' + extention; // полный путь к создаваемому файлу
let fileContent = ''; // будущий контент файла
let fileCreateMsg = ''; // будущее сообщение в консоли при создании файла
// Если это LESS
if(extention == 'less') {
fileContent = '// Для импорта в диспетчер подключений: @import \'' + dirs.source + '/blocks/' + blockName + '/' + blockName + '.less\';\n\n@import \'../../less/variables.less\'; // только для удобства обращения к переменным\n\n\n.' + blockName + ' {\n \n}\n';
fileCreateMsg = '[NTH] Для импорта стилей: @import \'' + dirs.source + '/blocks/' + blockName + '/' + blockName + '.less\';';
}
// Если это HTML
else if(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';
}
// Создаем файл, если он еще не существует
if(fileExist(filePath) === false) {
fs.writeFile(filePath, fileContent, function(err) {
if(err) {
......
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