mirror of
https://github.com/PR0M3TH3AN/TORCH.git
synced 2026-10-27 07:51:52 +00:00
Fix 4everland deployment by adding build script
- Added `build.mjs` to bundle `landing`, `dashboard`, and `docs` into a `dist/` directory. - Updated `package.json` with a `build` script (`node build.mjs`). - Updated `.gitignore` to ignore the `dist/` directory. - Patched `landing/index.html` paths in the build output to correctly reference resources when deployed from `dist/` root. Co-authored-by: PR0M3TH3AN <[email protected]>
This commit is contained in:
1 parent
c6add073f9
commit
2b0118d518
3 files changed
+51
-2
No files matched your search
+2
-1
@@ -1 +1,2 @@
|
||||
node_modules
|
||||
node_modules
|
||||
dist/
|
||||
@@ -0,0 +1,47 @@
|
||||
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_DIR = path.join(__dirname, 'dist');
|
||||
const LANDING_SRC = path.join(__dirname, 'landing');
|
||||
const DASHBOARD_SRC = path.join(__dirname, 'dashboard');
|
||||
const DOCS_SRC = path.join(__dirname, 'src', 'docs');
|
||||
const CONFIG_SRC = path.join(__dirname, 'torch-config.json');
|
||||
|
||||
// Ensure clean slate
|
||||
if (fs.existsSync(DIST_DIR)) {
|
||||
fs.rmSync(DIST_DIR, { recursive: true, force: true });
|
||||
}
|
||||
fs.mkdirSync(DIST_DIR);
|
||||
|
||||
// 1. Copy landing/index.html -> dist/index.html
|
||||
const landingHtml = fs.readFileSync(path.join(LANDING_SRC, 'index.html'), 'utf8');
|
||||
let distHtml = landingHtml;
|
||||
|
||||
// Patch relative paths for root deployment
|
||||
// Remove ../ prefix for these specific paths since they are now relative to root (dist/)
|
||||
distHtml = distHtml.replace(/"\.\.\/dashboard\/styles\.css"/g, '"dashboard/styles.css"');
|
||||
distHtml = distHtml.replace(/"\.\.\/dashboard\/"/g, '"dashboard/"'); // Link to dashboard
|
||||
distHtml = distHtml.replace(/'\.\.\/src\/docs\/TORCH\.md'/g, "'src/docs/TORCH.md'");
|
||||
|
||||
fs.writeFileSync(path.join(DIST_DIR, 'index.html'), distHtml);
|
||||
|
||||
// 2. Copy dashboard/ -> dist/dashboard/
|
||||
const distDashboard = path.join(DIST_DIR, 'dashboard');
|
||||
fs.mkdirSync(distDashboard, { recursive: true });
|
||||
fs.cpSync(DASHBOARD_SRC, distDashboard, { recursive: true });
|
||||
|
||||
// 3. Copy src/docs/ -> dist/src/docs/
|
||||
const distDocs = path.join(DIST_DIR, 'src', 'docs');
|
||||
fs.mkdirSync(distDocs, { recursive: true });
|
||||
fs.cpSync(DOCS_SRC, distDocs, { recursive: true });
|
||||
|
||||
// 4. Copy torch-config.json -> dist/torch-config.json (optional config)
|
||||
if (fs.existsSync(CONFIG_SRC)) {
|
||||
fs.copyFileSync(CONFIG_SRC, path.join(DIST_DIR, 'torch-config.json'));
|
||||
}
|
||||
|
||||
console.log('Build complete! Output directory: dist/');
|
||||
+2
-1
@@ -9,7 +9,8 @@
|
||||
"lock:check:weekly": "node src/nostr-lock.mjs check --cadence weekly",
|
||||
"lock:list": "node src/nostr-lock.mjs list",
|
||||
"lock:lock": "node src/nostr-lock.mjs lock",
|
||||
"dashboard:serve": "python3 -m http.server 4173"
|
||||
"dashboard:serve": "python3 -m http.server 4173",
|
||||
"build": "node build.mjs"
|
||||
},
|
||||
"dependencies": {
|
||||
"nostr-tools": "2.19.4",
|
||||
|
||||
Reference in new issue
Block a user