39 lines
1.4 KiB
JavaScript
39 lines
1.4 KiB
JavaScript
// postbuild.js
|
||
import { readFile, writeFile } from 'fs/promises';
|
||
import { join } from 'path';
|
||
import { fileURLToPath } from 'url';
|
||
import { dirname } from 'path';
|
||
|
||
const __filename = fileURLToPath(import.meta.url);
|
||
const __dirname = dirname(__filename);
|
||
|
||
const distPath = join(__dirname, 'dist');
|
||
const assetsPath = join(distPath, 'assets');
|
||
|
||
// Читаем index.html
|
||
const indexHtml = await readFile(join(distPath, 'index.html'), 'utf-8');
|
||
|
||
// Обновлённые регулярки — учитывают /deal/assets/ и атрибуты
|
||
const jsMatch = indexHtml.match(/<script[^>]+src="\/deal\/assets\/([^"]+\.js)"/);
|
||
const cssMatch = indexHtml.match(/<link[^>]+href="\/deal\/assets\/([^"]+\.css)"/);
|
||
|
||
if (!jsMatch || !cssMatch) {
|
||
console.error('❌ Не удалось найти JS/CSS в index.html');
|
||
console.log('Содержимое index.html:', indexHtml.substring(0, 500)); // Для отладки
|
||
process.exit(1);
|
||
}
|
||
|
||
const jsFile = jsMatch[1];
|
||
const cssFile = cssMatch[1];
|
||
|
||
const jsContent = `// Авто-сгенерировано: postbuild.js
|
||
import '/deal/assets/${jsFile}';`;
|
||
|
||
const cssContent = `/* Авто-сгенерировано: postbuild.js */
|
||
@import '/deal/assets/${cssFile}';`;
|
||
|
||
// Записываем прослойки
|
||
await writeFile(join(assetsPath, 'app.js'), jsContent);
|
||
await writeFile(join(assetsPath, 'app.css'), cssContent);
|
||
|
||
console.log('✅ Прослойки созданы: app.js и app.css'); |