feat: minify html + js

This commit is contained in:
Cory Dransfeldt 2024-08-28 19:55:49 -07:00
parent d1b6b8cbea
commit ee53cbdb26
No known key found for this signature in database
6 changed files with 320 additions and 8 deletions

View file

@ -1,5 +1,6 @@
import fs from 'fs'
import path from 'path'
import { minify } from 'terser'
const errorPages = ['404', '500', '1000', 'broken', 'error', 'js-challenge', 'not-allowed', 'rate-limit']
@ -28,3 +29,26 @@ export const copyErrorPages = () => {
})
})
}
export const minifyJsComponents = async () => {
const scriptsDir = '_site/assets/scripts'
const minifyJsFilesInDir = async (dir) => {
const files = fs.readdirSync(dir)
for (const fileName of files) {
const filePath = path.join(dir, fileName)
const stat = fs.statSync(filePath)
if (stat.isDirectory()) {
await minifyJsFilesInDir(filePath)
} else if (fileName.endsWith('.js')) {
const minified = await minify(fs.readFileSync(filePath, 'utf8'))
fs.writeFileSync(filePath, minified.code)
} else {
console.log(`⚠ No .js file to minify in ${filePath}`)
}
}
}
await minifyJsFilesInDir(scriptsDir)
}