templates/vitekit/__/vite-bem-template-main/.create-block.js
2026-04-12 21:03:18 +03:00

37 lines
1.4 KiB
JavaScript

import path, { resolve } from 'node:path'
import url from 'node:url'
import fs from 'node:fs'
import { exec } from 'node:child_process'
const blocksDir = resolve(path.dirname(url.fileURLToPath(import.meta.url)), 'src/blocks')
let blockPath = process.argv[process.argv.length - 1]
blockPath.slice(-1) === '/' ? blockPath = blockPath.slice(0, -1) : ''
const blockName = blockPath.split('/').pop()
fs.mkdir(`${blocksDir}/${blockPath}`, { recursive: true }, () => {
let error = false
if (fs.existsSync(`${blocksDir}/${blockPath}/${blockName}.pug`)) {
error = true
console.log('Файл шаблона уже существует')
} else {
fs.writeFileSync(`${blocksDir}/${blockPath}/${blockName}.pug`,
`mixin ${blockName}(mods)
-
const allMods = mods ? mods.split(',').map(mod => mod.trim()[0] === '-' ? \`${blockName}\${mod.trim()}\` : \`\${mod.trim()}__${blockName}\`).join(' ').trim() : ''
.${blockName}(class=allMods)&attributes(attributes)
block`
)
}
if (fs.existsSync(`${blocksDir}/${blockPath}/${blockName}.scss`)) {
error = true
console.log('Файл стилей уже существует')
} else {
fs.writeFileSync(`${blocksDir}/${blockPath}/${blockName}.scss`, `.${blockName} {\n position: relative;\n}\n`)
}
if (error === false) {
console.log('Блок успешно создан')
}
})
exec('node .create-mixins.js')