47 lines
1.0 KiB
JavaScript
47 lines
1.0 KiB
JavaScript
import * as esbuild from 'esbuild'
|
|
import fs from 'fs'
|
|
|
|
import { sassPlugin } from 'esbuild-sass-plugin'
|
|
|
|
async function build() {
|
|
// Bundle only the .scss files into a single css file
|
|
await esbuild.build({
|
|
entryPoints: ['src/esbuildEntry.ts'],
|
|
bundle: true,
|
|
minify: true,
|
|
outdir: 'dist/prod',
|
|
packages: 'external',
|
|
plugins: [sassPlugin({ css: 'external' })],
|
|
})
|
|
|
|
try {
|
|
fs.renameSync('dist/prod/esbuildEntry.css', 'dist/prod/styles.css')
|
|
} catch (err) {
|
|
console.error(`Error while renaming index.css: ${err}`)
|
|
throw err
|
|
}
|
|
|
|
console.log('styles.css bundled successfully')
|
|
|
|
const filesToDelete = [
|
|
'dist/esbuildEntry.js',
|
|
'dist/prod/esbuildEntry.js',
|
|
'dist/esbuildEntry.d.ts',
|
|
'dist/esbuildEntry.d.ts.map',
|
|
'dist/esbuildEntry.js.map',
|
|
]
|
|
|
|
for (const file of filesToDelete) {
|
|
try {
|
|
fs.unlinkSync(file)
|
|
} catch (err) {
|
|
console.error(`Error while deleting ${file}: ${err}`)
|
|
throw err
|
|
}
|
|
}
|
|
|
|
console.log('Files renamed and deleted successfully')
|
|
}
|
|
|
|
await build()
|