import * as fs from 'fs'; import * as path from 'path'; import { Plugin } from 'vite'; export const inputFiles: Record = {}; let newEntryCssFile = ''; fs.readdirSync(path.resolve(__dirname, 'src')).forEach((name) => { if (!name.includes('.')) { fs.readdirSync(path.resolve(__dirname, `src/${name}`)).forEach((css) => { if (css === 'fonts' || css.includes('index')) return; const fileName = css.includes('index') ? `${name}.css` : css; inputFiles[fileName.replace('.css', '')] = path.resolve( __dirname, `src`, name, css ); }); } }); export function generateEntryCssFile() { return { name: 'generateEntryCssFile', apply: 'build', buildStart() { const CORE_DIR = path.join(__dirname, '../../..', 'dist/packages/core'); const STYLES_DIR = path.join(CORE_DIR, 'styles'); if (!fs.existsSync(CORE_DIR)) fs.mkdirSync(CORE_DIR); if (!fs.existsSync(STYLES_DIR)) fs.mkdirSync(STYLES_DIR); fs.writeFileSync( path.join(__dirname, '../../..', 'dist/packages/core/styles/style.css'), '' ); }, generateBundle(options, bundle) { for (const file in bundle) { const fileName = path.basename(bundle[file].fileName); if (fileName.includes('.css')) { newEntryCssFile += `@import 'https://static-basket-03.wbbasket.ru/vol48/ritmcore/${fileName}';\n`; } } fs.writeFileSync( path.join(__dirname, '../../..', 'dist/packages/core/styles/style.css'), newEntryCssFile, { encoding: 'utf-8', } ); }, } as Plugin; }