UNPKG

concatenation_js_end_css

Version:

Concatenation with js end css file deliver with Node server

70 lines (57 loc) 2.34 kB
const express = require('express'); const fs = require('fs'); const path = require('path'); const crypto = require('crypto'); const app = express(); // Aici este modificarea: am înlocuit app.get() cu app.use() app.use('/', (req, res) => { try { // Verificăm dacă cererea este pentru un fișier .js sau .css const requestedPath = decodeURIComponent(req.path); console.log(`Request received for path: ${requestedPath}`); let files = []; let contentType = ''; let fileExtension = ''; if (requestedPath.includes('.js')) { files = requestedPath.substring(1).split('+').filter(f => f.endsWith('.js')); contentType = 'application/javascript'; fileExtension = '.js'; } else if (requestedPath.includes('.css')) { files = requestedPath.substring(1).split('+').filter(f => f.endsWith('.css')); contentType = 'text/css'; fileExtension = '.css'; } else { return res.status(404).send('Not a JS or CSS file request.'); } console.log('Files to process:', files); if (files.length === 0) { return res.status(400).send(`No valid ${fileExtension} files requested`); } let output = ''; const missingFiles = []; for (const file of files) { const projectRoot = process.cwd(); const filePath = path.join(projectRoot, 'public', file); console.log(`Attempting to read file from: ${filePath}`); if (fs.existsSync(filePath)) { console.log(`SUCCESS: Found file ${file}`); const fileHash = crypto.createHash('md5').update(file).digest('hex').substring(0, 16); output += `;// __FILE_CONTENT_FOR__:${fileHash}${fileExtension}\n`; output += fs.readFileSync(filePath, 'utf8').trim() + '\n\n'; } else { console.error(`ERROR: File not found at ${filePath}`); missingFiles.push(file); } } if (missingFiles.length > 0) { return res.status(404).send(`Missing files: ${missingFiles.join(', ')}`); } res.setHeader('Content-Type', contentType); res.setHeader('Cache-Control', 'public, max-age=86400'); res.send(output); } catch (err) { console.error('CRITICAL ERROR:', err); res.status(500).send(`Server Error: ${err.message}`); } }); module.exports = app;