mirror of
https://github.com/StepanovPlaton/AboutMe.git
synced 2026-04-03 20:30:49 +04:00
84 lines
2.0 KiB
JavaScript
84 lines
2.0 KiB
JavaScript
/* This is a script to build the site with Pagefind */
|
|
|
|
const { execSync } = require('child_process');
|
|
const { existsSync } = require('fs');
|
|
const { join } = require('path');
|
|
|
|
// Detect the platform
|
|
function detectPlatform() {
|
|
// Check environment variables
|
|
if (process.env.VERCEL) {
|
|
return 'vercel';
|
|
}
|
|
if (process.env.CF_PAGES) {
|
|
return 'cloudflare';
|
|
}
|
|
if (process.env.NETLIFY) {
|
|
return 'netlify';
|
|
}
|
|
if (process.env.GITHUB_ACTIONS) {
|
|
return 'github';
|
|
}
|
|
|
|
// Check if specific directories exist
|
|
if (existsSync('.vercel')) {
|
|
return 'vercel';
|
|
}
|
|
|
|
// Default to standard dist directory
|
|
return 'default';
|
|
}
|
|
|
|
// Get Pagefind output directory
|
|
function getPagefindOutputDir(platform) {
|
|
const outputDirs = {
|
|
vercel: '.vercel/output/static',
|
|
cloudflare: 'dist',
|
|
netlify: 'dist',
|
|
github: 'dist',
|
|
default: 'dist'
|
|
};
|
|
|
|
return outputDirs[platform] || 'dist';
|
|
}
|
|
|
|
// Main function
|
|
function main() {
|
|
const platform = detectPlatform();
|
|
const outputDir = getPagefindOutputDir(platform);
|
|
|
|
console.log(`🚀 Detected deployment platform: ${platform}`);
|
|
console.log(`📁 Pagefind output directory: ${outputDir}`);
|
|
|
|
try {
|
|
// Run Astro build
|
|
console.log('🔨 Running Astro build...');
|
|
execSync(`npx astro build`.trim(), {
|
|
stdio: 'inherit',
|
|
cwd: process.cwd() // Ensure in the correct directory
|
|
});
|
|
|
|
// Check if output directory exists
|
|
if (!existsSync(outputDir)) {
|
|
console.error(`❌ Output directory does not exist: ${outputDir}`);
|
|
process.exit(1);
|
|
}
|
|
|
|
// Run Pagefind
|
|
console.log(`🔍 Running Pagefind search index generation...`);
|
|
execSync(`npx pagefind --site ${outputDir}`, {
|
|
stdio: 'inherit',
|
|
cwd: process.cwd() // Ensure in the correct directory
|
|
});
|
|
|
|
console.log('✅ Build completed!');
|
|
console.log(`📊 Search index generated at: ${outputDir}/pagefind/`);
|
|
|
|
} catch (error) {
|
|
console.error('❌ Build failed:', error.message);
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
main();
|