58 lines
1.8 KiB
JavaScript
58 lines
1.8 KiB
JavaScript
import fs from 'fs';
|
|
import path from 'path';
|
|
import { fileURLToPath } from 'url';
|
|
import { dirname } from 'path';
|
|
|
|
// Get directory name in ES modules
|
|
const __filename = fileURLToPath(import.meta.url);
|
|
const __dirname = dirname(__filename);
|
|
|
|
// Define paths
|
|
const projectRoot = path.join(__dirname, '..');
|
|
const viewsDir = path.join(projectRoot, 'public', 'views');
|
|
const distViewsDir = path.join(projectRoot, 'dist', 'public', 'views');
|
|
const cssDir = path.join(projectRoot, 'public', 'css');
|
|
const distCssDir = path.join(projectRoot, 'dist', 'testapp', 'public', 'css');
|
|
|
|
// Create dist directories if they don't exist
|
|
function ensureDirectoryExists(directory) {
|
|
if (!fs.existsSync(directory)) {
|
|
fs.mkdirSync(directory, { recursive: true });
|
|
console.log(`Created directory: ${directory}`);
|
|
}
|
|
}
|
|
|
|
// Copy files from source to destination
|
|
function copyFiles(sourceDir, destDir, extension) {
|
|
ensureDirectoryExists(destDir);
|
|
|
|
// Check if source directory exists
|
|
if (!fs.existsSync(sourceDir)) {
|
|
console.log(`Source directory does not exist: ${sourceDir}`);
|
|
return;
|
|
}
|
|
|
|
const files = fs.readdirSync(sourceDir).filter(file => file.endsWith(extension));
|
|
|
|
files.forEach(file => {
|
|
const sourcePath = path.join(sourceDir, file);
|
|
const destPath = path.join(destDir, file);
|
|
|
|
fs.copyFileSync(sourcePath, destPath);
|
|
console.log(`Copied ${sourcePath} to ${destPath}`);
|
|
});
|
|
|
|
console.log(`Copied ${files.length} ${extension} files`);
|
|
}
|
|
|
|
console.log('Starting asset copy process...');
|
|
|
|
// Copy view templates
|
|
console.log('Copying Mustache templates...');
|
|
copyFiles(viewsDir, distViewsDir, '.mustache');
|
|
|
|
// Copy CSS files
|
|
console.log('Copying CSS files...');
|
|
copyFiles(cssDir, distCssDir, '.css');
|
|
|
|
console.log('All static assets have been copied to dist.'); |