feat(dev): add live-reload dev server with Juice CSS inlining

- tools/server/: Node.js dev server (Express + WebSocket + fs.watch)
  Watches themes/ for .tmpl changes, rebuilds via Go preview command,
  applies Juice CSS inlining for email client compatibility, pushes
  live reload to browser via WebSocket.
- tools/cli/dev.go: 'go run . dev' subcommand — starts Node.js server
  with automatic npm install, initial preview generation, and
  Ctrl+C graceful shutdown.
- tools/tools.go: register dev command in CLI app.
- .gitignore: add node_modules exclusion.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
KenanZhuandClaude Opus 4.8 committed 2026-06-04 13:50:57 +08:00
1 parent 0bf982ffb9
commit 05d76a90af
6 files changed
+377

No files matched your search

+3
View File
@@ -18,5 +18,8 @@ Desktop.ini
*.zip
*.tar.gz
# Package lock file
package-lock.json
# Generated preview data (run: cd tools && go run . preview all)
preview/rendered.js