85 lines
2.7 KiB
JavaScript
85 lines
2.7 KiB
JavaScript
/**
|
|
* Script exécuté AVANT le build sur Vercel (via prebuild)
|
|
* 1. Installe @tailwindcss/postcss pour Vercel
|
|
* 2. Supprime le code CDN Tailwind pour éviter le double-chargement
|
|
*/
|
|
|
|
const fs = require("fs");
|
|
const path = require("path");
|
|
const { execSync } = require("child_process");
|
|
|
|
console.log("\n🔧 [PREBUILD] Starting Vercel preparation script...");
|
|
console.log("📋 Environment:", {
|
|
VERCEL: process.env.VERCEL,
|
|
NEXT_PUBLIC_VERCEL: process.env.NEXT_PUBLIC_VERCEL,
|
|
NODE_ENV: process.env.NODE_ENV,
|
|
});
|
|
|
|
// Seulement sur Vercel
|
|
if (process.env.VERCEL === "1" || process.env.NEXT_PUBLIC_VERCEL === "1") {
|
|
console.log("✅ Running on Vercel - preparing for build...\n");
|
|
|
|
// Install Tailwind CSS v4 for Vercel build (per official docs)
|
|
console.log("📦 Installing Tailwind CSS v4 packages...");
|
|
try {
|
|
// Per https://tailwindcss.com/docs/installation/framework-guides
|
|
// Need to install: tailwindcss @tailwindcss/postcss postcss
|
|
execSync(
|
|
"npm install tailwindcss @tailwindcss/postcss postcss --legacy-peer-deps",
|
|
{
|
|
stdio: "inherit",
|
|
},
|
|
);
|
|
console.log("✅ Tailwind CSS v4 installed with lightningcss bindings\n");
|
|
} catch (error) {
|
|
console.error("❌ Failed to install Tailwind CSS:", error.message);
|
|
process.exit(1);
|
|
}
|
|
|
|
// Remove CDN loader
|
|
console.log("🗑️ Removing Tailwind CDN loader...");
|
|
|
|
const loaderPath = path.join(
|
|
__dirname,
|
|
"..",
|
|
"components",
|
|
"tailwind-cdn-loader.tsx",
|
|
);
|
|
console.log("📂 Replacing file:", loaderPath);
|
|
|
|
// Remplacer complètement le fichier par un composant vide
|
|
const emptyComponent = `'use client'
|
|
|
|
/**
|
|
* Tailwind CSS v4 Loader (Vercel Build)
|
|
*
|
|
* This file was emptied by prebuild script (scripts/remove-cdn-for-vercel.js)
|
|
* On Vercel, Tailwind v4 is compiled via lightningcss (no CDN needed)
|
|
*/
|
|
export function TailwindCDNLoader() {
|
|
return null;
|
|
}
|
|
`;
|
|
|
|
try {
|
|
const originalContent = fs.readFileSync(loaderPath, "utf-8");
|
|
const originalSize = originalContent.length;
|
|
|
|
fs.writeFileSync(loaderPath, emptyComponent);
|
|
const newSize = emptyComponent.length;
|
|
|
|
console.log("\n📊 Results:");
|
|
console.log(" - Original size:", originalSize, "bytes");
|
|
console.log(" - New size:", newSize, "bytes");
|
|
console.log(" - Removed:", originalSize - newSize, "bytes");
|
|
console.log("\n✅ SUCCESS! CDN code removed from tailwind-cdn-loader.tsx");
|
|
console.log("🚀 Vercel build will use compiled Tailwind v4 (no CDN)\n");
|
|
} catch (error) {
|
|
console.log("\n❌ ERROR:", error.message);
|
|
console.log(" Build will continue but CDN might be present\n");
|
|
}
|
|
} else {
|
|
console.log("⏭️ Not on Vercel - skipping CDN removal");
|
|
console.log(" (CDN will be used for CodeSandbox development)\n");
|
|
}
|