-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpackage.json
More file actions
26 lines (26 loc) · 2.05 KB
/
Copy pathpackage.json
File metadata and controls
26 lines (26 loc) · 2.05 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
{
"name": "rocketpy-landing-page",
"version": "1.0.0",
"description": "RocketPy landing page - Advanced rocket trajectory simulator",
"scripts": {
"format": "prettier --write '**/*.{html,css,js}'",
"build": "npm run build:css && npm run build:html",
"build:css": "npm run minify:css:main && npm run minify:css:footer",
"build:html": "npm run minify:html:index && npm run minify:html:about",
"minify:css:main": "lightningcss --minify --bundle css/main.css -o dist/css/main.css",
"minify:css:footer": "lightningcss --minify --bundle css/footer.css -o dist/css/footer.css",
"minify:html:index": "html-minifier --collapse-whitespace --remove-comments index.html -o dist/index.html",
"minify:html:about": "html-minifier --collapse-whitespace --remove-comments about.html -o dist/about.html",
"prebuild": "node -e \"const fs = require('fs'); fs.rmSync('dist', { recursive: true, force: true }); ['dist', 'dist/css', 'dist/images', 'dist/about-images'].forEach(dir => fs.mkdirSync(dir, { recursive: true }));\"",
"postbuild": "node -e \"const fs = require('fs'); const path = require('path'); const copyDir = (src, dest) => { if (!fs.existsSync(src)) return; fs.mkdirSync(dest, { recursive: true }); for (const entry of fs.readdirSync(src, { withFileTypes: true })) { const srcPath = path.join(src, entry.name); const destPath = path.join(dest, entry.name); if (entry.isDirectory()) copyDir(srcPath, destPath); else fs.copyFileSync(srcPath, destPath); } }; const copyFile = (src, dest) => { if (!fs.existsSync(src)) return; fs.mkdirSync(path.dirname(dest), { recursive: true }); fs.copyFileSync(src, dest); }; copyDir('images', 'dist/images'); copyDir('about-images', 'dist/about-images'); copyDir('css/font-awesome', 'dist/css/font-awesome'); ['manifest.json', 'robots.txt', 'sitemap.xml', 'nasalization-rg.otf'].forEach(file => copyFile(file, path.join('dist', file)));\""
},
"devDependencies": {
"prettier": "^3.3.3",
"lightningcss-cli": "^1.27.0",
"html-minifier": "^4.0.0"
},
"browserslist": [
"> 0.5%",
"not dead"
]
}