minify assets in prod

This commit is contained in:
MapleLeaf
2022-01-07 15:07:11 -06:00
parent dd7d559ed9
commit 81f28fecf2
4 changed files with 530 additions and 15 deletions

View File

@@ -10,6 +10,7 @@ export const transformEsbuild: AssetTransformer = {
target: ["chrome89", "firefox89"],
format: "esm",
write: false,
minify: process.env.NODE_ENV === "production",
})
return {

View File

@@ -1,5 +1,7 @@
import autoprefixer from "autoprefixer"
import cssnano from "cssnano"
import { readFile } from "fs/promises"
import postcss from "postcss"
import postcss, { AcceptedPlugin } from "postcss"
import tailwindcss from "tailwindcss"
import { AssetTransformer } from "./asset-builder.js"
@@ -7,10 +9,15 @@ export const transformPostCss: AssetTransformer = {
async transform(inputFile) {
if (!inputFile.match(/\.css$/)) return
const result = await postcss(tailwindcss).process(
await readFile(inputFile),
{ from: inputFile },
)
const plugins: AcceptedPlugin[] = [tailwindcss, autoprefixer]
if (process.env.NODE_ENV === "production") {
plugins.push(cssnano)
}
const result = await postcss(plugins).process(await readFile(inputFile), {
from: inputFile,
})
return {
content: result.css,