50 lines
No EOL
1.6 KiB
JavaScript
50 lines
No EOL
1.6 KiB
JavaScript
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')
|
|
|
|
module.exports = function (eleventyConfig) {
|
|
eleventyConfig.on('eleventy.before', async () => {
|
|
const cssSrc = './src/style/style.css'
|
|
const cssDest = './dist/style.css'
|
|
|
|
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)
|
|
})
|
|
})
|
|
|
|
// await esbuild.build({
|
|
// entryPoints: ['src/js/main.js'],
|
|
// bundle: true,
|
|
// minify: true,
|
|
// target: 'es2020',
|
|
// outfile: 'dist/main.js',
|
|
// })
|
|
// .then(() => console.log('🧳 esbuild done'))
|
|
// .catch(() => process.exit(1))
|
|
})
|
|
|
|
eleventyConfig.addWatchTarget('./src/style/')
|
|
eleventyConfig.addWatchTarget('./src/js/')
|
|
|
|
eleventyConfig.addPlugin(automaticNoopener, {
|
|
noreferrer: true,
|
|
})
|
|
|
|
eleventyConfig.addPassthroughCopy('./src/img/')
|
|
|
|
return {dir: {input: 'src', output: 'dist'}}
|
|
} |