mirror of
https://github.com/wizarrrr/wizarr.git
synced 2026-07-30 23:07:19 -04:00
56 lines
2.4 KiB
JavaScript
56 lines
2.4 KiB
JavaScript
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
const assets = [
|
|
// Original assets
|
|
{ src: 'node_modules/sortablejs/Sortable.min.js', dest: 'js/sortable.min.js' },
|
|
{ src: 'node_modules/tiny-markdown-editor/dist/tiny-mde.min.js', dest: 'js/tiny-mde.min.js' },
|
|
{ src: 'node_modules/tiny-markdown-editor/dist/tiny-mde.min.css', dest: 'css/tiny-mde.min.css' },
|
|
|
|
// Safe Vendor assets (to fix the White Screen of Death / WAF node_modules blocks)
|
|
{ src: 'node_modules/alpinejs/dist/cdn.min.js', dest: 'js/vendor/alpine.min.js' },
|
|
{ src: 'node_modules/@alpinejs/collapse/dist/cdn.min.js', dest: 'js/vendor/alpine-collapse.min.js' },
|
|
{ src: 'node_modules/flowbite/dist/flowbite.min.js', dest: 'js/vendor/flowbite.min.js' },
|
|
{ src: 'node_modules/htmx.org/dist/htmx.min.js', dest: 'js/vendor/htmx.min.js' },
|
|
{ src: 'node_modules/htmx-ext-preload/dist/preload.min.js', dest: 'js/vendor/htmx-preload.min.js' },
|
|
{ src: 'node_modules/animate.css/animate.min.css', dest: 'css/vendor/animate.min.css' },
|
|
{ src: 'node_modules/animejs/lib/anime.min.js', dest: 'js/vendor/anime.min.js' },
|
|
{ src: 'node_modules/bowser/bundled.js', dest: 'js/vendor/bowser.min.js' },
|
|
{ src: 'node_modules/inapp-spy/dist/index.global.js', dest: 'js/vendor/inapp-spy.min.js' }
|
|
];
|
|
|
|
const isProduction = process.env.NODE_ENV === 'production' || process.env.DOCKER_BUILD === 'true';
|
|
|
|
console.log('📦 Starting cross-platform asset copy...');
|
|
|
|
assets.forEach(asset => {
|
|
const srcPath = path.resolve(__dirname, asset.src);
|
|
const destPath = path.resolve(__dirname, asset.dest);
|
|
|
|
if (!fs.existsSync(srcPath)) {
|
|
if (isProduction) {
|
|
console.error(`❌ CRITICAL: Source file missing for production build: ${asset.src}`);
|
|
process.exit(1); // Fails the build pipeline safely
|
|
} else {
|
|
console.warn(`⚠️ Warning: Source file not found: ${asset.src}. Skipping in dev mode.`);
|
|
return;
|
|
}
|
|
}
|
|
|
|
// Ensure destination directory exists
|
|
const destDir = path.dirname(destPath);
|
|
if (!fs.existsSync(destDir)) {
|
|
fs.mkdirSync(destDir, { recursive: true });
|
|
}
|
|
|
|
try {
|
|
fs.copyFileSync(srcPath, destPath);
|
|
console.log(`✓ Copied ${asset.src} -> ${asset.dest}`);
|
|
} catch (err) {
|
|
console.error(`❌ Failed to copy ${asset.src}:`, err);
|
|
process.exit(1);
|
|
}
|
|
});
|
|
|
|
console.log('✨ All assets copied successfully!');
|