2023-12-10 22:51:44 +00:00
|
|
|
const fs = require("fs");
|
|
|
|
const postcss = require("postcss");
|
|
|
|
const postcssImportExtGlob = require("postcss-import-ext-glob");
|
|
|
|
const postcssImport = require("postcss-import");
|
|
|
|
const postcssPresetEnv = require("postcss-preset-env");
|
|
|
|
const cssnano = require("cssnano");
|
|
|
|
const esbuild = require("esbuild");
|
|
|
|
const automaticNoopener = require("eleventy-plugin-automatic-noopener");
|
2023-12-10 06:48:07 +00:00
|
|
|
|
2023-12-10 22:51:44 +00:00
|
|
|
module.exports = function(eleventyConfig) {
|
|
|
|
eleventyConfig.on("eleventy.before", async () => {
|
|
|
|
const cssSrc = "./src/style/style.css";
|
|
|
|
const cssDest = "./dist/style.css";
|
2023-12-10 06:48:07 +00:00
|
|
|
|
2023-12-10 22:51:44 +00:00
|
|
|
fs.readFile(cssSrc, (err, css) => {
|
|
|
|
// noinspection JSCheckFunctionSignatures
|
|
|
|
postcss([
|
|
|
|
postcssImportExtGlob,
|
|
|
|
postcssImport,
|
|
|
|
postcssPresetEnv,
|
|
|
|
cssnano
|
|
|
|
])
|
|
|
|
.process(css, { from: cssSrc, to: cssDest })
|
|
|
|
.then(res => {
|
|
|
|
fs.writeFile(cssDest, res.css, () => true);
|
|
|
|
});
|
|
|
|
});
|
2023-12-10 06:48:07 +00:00
|
|
|
|
2023-12-10 22:51:44 +00:00
|
|
|
await esbuild.build({
|
|
|
|
entryPoints: ["src/js/main.js"],
|
|
|
|
bundle: true,
|
|
|
|
minify: true,
|
|
|
|
target: "es2020",
|
|
|
|
outfile: "dist/main.js"
|
2023-12-10 06:48:07 +00:00
|
|
|
})
|
2023-12-10 22:51:44 +00:00
|
|
|
.then(() => console.log("🧳 esbuild done"))
|
|
|
|
.catch(() => process.exit(1));
|
|
|
|
});
|
2023-12-10 06:48:07 +00:00
|
|
|
|
2023-12-10 22:51:44 +00:00
|
|
|
eleventyConfig.addWatchTarget("./src/style/");
|
|
|
|
eleventyConfig.addWatchTarget("./src/js/");
|
2023-12-10 06:48:07 +00:00
|
|
|
|
2023-12-10 22:51:44 +00:00
|
|
|
eleventyConfig.addPlugin(automaticNoopener, {
|
|
|
|
noreferrer: true
|
|
|
|
});
|
2023-12-10 06:48:07 +00:00
|
|
|
|
2023-12-10 22:51:44 +00:00
|
|
|
eleventyConfig.addPassthroughCopy("./src/img/");
|
2023-12-10 06:48:07 +00:00
|
|
|
|
2023-12-10 22:51:44 +00:00
|
|
|
return { dir: { input: "src", output: "dist" } };
|
|
|
|
};
|