-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.js
More file actions
53 lines (44 loc) · 1.8 KB
/
build.js
File metadata and controls
53 lines (44 loc) · 1.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import fs from 'fs';
import path from 'path';
import { fileURLToPath } from 'url';
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const dist = path.join(__dirname, 'dist');
const assetsDir = path.join(dist, 'assets');
// Clean dist folder
if (fs.existsSync(dist)) {
fs.rmSync(dist, { recursive: true });
}
// Create dist structure
fs.mkdirSync(dist, { recursive: true });
fs.mkdirSync(path.join(assetsDir, 'styles'), { recursive: true });
fs.mkdirSync(path.join(assetsDir, 'js'), { recursive: true });
fs.mkdirSync(path.join(assetsDir, 'icons', 'fontawesome'), { recursive: true });
// Copy HTML
let html = fs.readFileSync('index.html', 'utf8');
// Update paths in HTML
html = html.replace(/\.\/src\/styles\//g, './assets/styles/');
html = html.replace(/\.\/src\/js\//g, './assets/js/');
fs.writeFileSync(path.join(dist, 'index.html'), html);
// Copy CSS
fs.copyFileSync('src/styles/base.css', path.join(assetsDir, 'styles', 'base.css'));
fs.copyFileSync('src/styles/modal.css', path.join(assetsDir, 'styles', 'modal.css'));
// Copy JS files
const jsFiles = ['app.js', 'export.js', 'gradient.js', 'icons.js', 'keyboard.js', 'presets.js', 'state.js', 'storage.js', 'ui.js'];
jsFiles.forEach(file => {
let content = fs.readFileSync(path.join('src/js', file), 'utf8');
// Update icon path in icons.js
if (file === 'icons.js') {
content = content.replace('./public/icons/fontawesome', './assets/icons/fontawesome');
}
fs.writeFileSync(path.join(assetsDir, 'js', file), content);
});
// Copy icons
const iconFiles = fs.readdirSync('public/icons/fontawesome');
iconFiles.forEach(file => {
fs.copyFileSync(
path.join('public/icons/fontawesome', file),
path.join(assetsDir, 'icons', 'fontawesome', file)
);
});
console.log('✓ Build complete! Output in dist/');