Файл-диспетчер подключений (`.src/scss/style.scss`) формируется автоматически на основании указанных в `./projectConfig.json` блоков и доп. файлов. Писать в этот файл что-либо руками бессмысленно: при старте автоматизации файл будет перезаписан.
Файл-диспетчер подключений (`.src/scss/style.scss`) формируется автоматически на основании указанных в `./projectConfig.json` блоков и доп. файлов. Писать в `.src/scss/style.scss` что-либо руками бессмысленно: при старте автоматизации файл будет перезаписан.
constblockName=process.argv[2];// получим имя блока
letdefaultExtensions=['scss','html','img'];// расширения по умолчанию
constdefaultExtensions=['scss','html','img'];// расширения по умолчанию
letextensions=uniqueArray(defaultExtensions.concat(process.argv.slice(3)));// добавим введенные при вызове расширения (если есть)
constextensions=uniqueArray(defaultExtensions.concat(process.argv.slice(3)));// добавим введенные при вызове расширения (если есть)
// Если есть имя блока
// Если есть имя блока
if(blockName){
if(blockName){
constdirPath=`${dirs.srcPath+dirs.blocksDirName}/${blockName}/`;// полный путь к создаваемой папке блока
letdirPath=dirs.srcPath+dirs.blocksDirName+'/'+blockName+'/';// полный путь к создаваемой папке блока
mkdirp(dirPath,(err)=>{// создаем
mkdirp(dirPath,function(err){// создаем
// Если какая-то ошибка — покажем
// Если какая-то ошибка — покажем
if(err){
if(err){
console.error('[NTH] Отмена операции: '+err);
console.error(`[NTH] Отмена операции: ${err}`);
}
}
// Нет ошибки, поехали!
// Нет ошибки, поехали!
else{
else{
console.log('[NTH] Создание папки '+dirPath+' (если отсутствует)');
console.log(`[NTH] Создание папки ${dirPath} (если отсутствует)`);
// Обходим массив расширений и создаем файлы, если они еще не созданы
// Обходим массив расширений и создаем файлы, если они еще не созданы
extensions.forEach(function(extention){
extensions.forEach((extention)=>{
constfilePath=`${dirPath+blockName}.${extention}`;// полный путь к создаваемому файлу
letfilePath=dirPath+blockName+'.'+extention;// полный путь к создаваемому файлу
letfileContent='';// будущий контент файла
letfileContent='';// будущий контент файла
letfileCreateMsg='';// будущее сообщение в консоли при создании файла
letfileCreateMsg='';// будущее сообщение в консоли при создании файла
// Если это SCSS
// Если это SCSS
if(extention=='scss'){
if(extention==='scss'){
fileContent='// В этом файле должны быть стили только для БЭМ-блока '+blockName+', его элементов, \n// модификаторов, псевдоселекторов, псевдоэлементов, @media-условий...\n// Не пишите здесь другие селекторы.\n\n.'+blockName+' {\n \n}\n';
fileContent=`// В этом файле должны быть стили только для БЭМ-блока ${blockName}, его элементов, \n// модификаторов, псевдоселекторов, псевдоэлементов, @media-условий...\n// Не пишите здесь другие селекторы.\n\n.${blockName} {\n \n}\n`;
fileCreateMsg='[NTH] Подключение блока добавлено в projectConfig.json';
fileCreateMsg='[NTH] Подключение блока добавлено в projectConfig.json';
}
}
}
}
// Если это HTML
// Если это HTML
elseif(extention=='html'){
elseif(extention==='html'){
fileContent='<!--DEV\n\nДля использования этого файла как шаблона:\n\n@ @include(\'blocks/'+blockName+'/'+blockName+'.html\')\n\n(Нужно убрать пробел между символами @)\nПодробнее: https://www.npmjs.com/package/gulp-file-include\n\n-->\n\n<div class="'+blockName+'">content</div>\n';
fileContent=`<!--DEV\n\nДля использования этого файла как шаблона:\n\n@ @include('blocks/${blockName}/${blockName}.html')\n\n(Нужно убрать пробел между символами @)\nПодробнее: https://www.npmjs.com/package/gulp-file-include\n\n-->\n\n<div class="${blockName}">content</div>\n`;