summaryrefslogtreecommitdiff
path: root/rolldown.config.js
diff options
context:
space:
mode:
Diffstat (limited to 'rolldown.config.js')
-rw-r--r--rolldown.config.js36
1 files changed, 36 insertions, 0 deletions
diff --git a/rolldown.config.js b/rolldown.config.js
new file mode 100644
index 0000000..6cc7765
--- /dev/null
+++ b/rolldown.config.js
@@ -0,0 +1,36 @@
+import { rolldown } from 'rolldown';
+import fs from 'fs-extra';
+import path from 'path';
+
+const production = process.env.NODE_ENV === 'production';
+
+async function build() {
+ try {
+ await fs.remove('dist');
+ await fs.ensureDir('dist');
+
+ const jsBundle = await rolldown({
+ input: 'src/js/script.ts',
+ output: {
+ file: 'dist/bundle.js',
+ format: 'es',
+ sourcemap: !production,
+ },
+ });
+
+ await jsBundle.write();
+
+ await fs.copy('src/css/style.css', 'dist/bundle.css');
+ await fs.copy('src/assets', 'dist', {
+ overwrite: true,
+ });
+
+ let html = await fs.readFile('src/index.html', 'utf8');
+ await fs.writeFile('dist/index.html', html);
+ } catch (err) {
+ console.error('Build failed:', err);
+ process.exit(1);
+ }
+}
+
+build();