chore: improve minification

This commit is contained in:
Cory Dransfeldt 2024-08-29 08:20:16 -07:00
parent 50da2beca1
commit 55326dab7d
No known key found for this signature in database
8 changed files with 69 additions and 57 deletions

View file

@ -32,6 +32,7 @@ export const copyErrorPages = () => {
export const minifyJsComponents = async () => {
const scriptsDir = '_site/assets/scripts'
let combinedJs = ''
const minifyJsFilesInDir = async (dir) => {
const files = fs.readdirSync(dir)
@ -40,15 +41,33 @@ export const minifyJsComponents = async () => {
const stat = fs.statSync(filePath)
if (stat.isDirectory()) {
await minifyJsFilesInDir(filePath)
if (fileName === 'components') {
const componentFiles = fs.readdirSync(filePath)
for (const componentFile of componentFiles) {
const componentFilePath = path.join(filePath, componentFile)
if (componentFile.endsWith('.js')) {
const componentContent = fs.readFileSync(componentFilePath, 'utf8')
const minified = await minify(componentContent)
fs.writeFileSync(componentFilePath, minified.code)
}
}
} else {
await minifyJsFilesInDir(filePath)
}
} else if (fileName.endsWith('.js')) {
const minified = await minify(fs.readFileSync(filePath, 'utf8'))
const fileContent = fs.readFileSync(filePath, 'utf8')
const minified = await minify(fileContent)
fs.writeFileSync(filePath, minified.code)
combinedJs += minified.code + ';\n'
} else {
console.log(`⚠ No .js file to minify in ${filePath}`)
console.log(`⚠ No .js files to minify in ${filePath}`)
}
}
}
await minifyJsFilesInDir(scriptsDir)
const outputFilePath = path.join(scriptsDir, 'index.js')
fs.writeFileSync(outputFilePath, combinedJs)
console.log(`Combined and minified .js files into ${outputFilePath}`)
}