feat: minify html + js
This commit is contained in:
parent
d1b6b8cbea
commit
ee53cbdb26
6 changed files with 320 additions and 8 deletions
|
@ -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)
|
||||
}
|
Reference in a new issue