dx serve 热重载(重新编译代码)不会清除进程内的 IncrementalRenderer 缓存(DashMap<Uri, CachedHTML> in-process)。改了 SSR 渲染逻辑(如 markdown 渲染、组件结构)后,即使二进制重新编译了,dev server 仍返回 进程启动时缓存的旧 HTML,直到 TTL(默认 3600s)过期。 坑: Ctrl+C 重启 make dev 时,如果 dx serve 子进程没被真正杀掉(进程 PID 不变),内存缓存持续存在。表现为"代码改了但页面不变"。 修复: dev target 给 dx serve 加 SSR_CACHE_SECS=0,禁用 SSR 缓存。 每次请求都重新渲染,改代码立即生效。仅影响 dev,不影响生产构建。
50 lines
1.5 KiB
Makefile
50 lines
1.5 KiB
Makefile
.PHONY: dev build build-linux css css-watch clean build-editor build-editor-incremental highlight-css test
|
||
|
||
build:
|
||
@$(MAKE) build-editor
|
||
@$(MAKE) highlight-css
|
||
@tailwindcss -i input.css -o public/style.css --minify
|
||
@dx build --release --debug-symbols=false
|
||
|
||
build-linux:
|
||
@$(MAKE) build-editor
|
||
@$(MAKE) highlight-css
|
||
@tailwindcss -i input.css -o public/style.css --minify
|
||
@dx build @client --release --debug-symbols=false --wasm-js-cfg false
|
||
@dx build @server --release --debug-symbols=false --target x86_64-unknown-linux-musl --wasm-js-cfg false --features server
|
||
|
||
highlight-css:
|
||
@cargo run --bin generate_highlight_css
|
||
|
||
build-editor:
|
||
@echo "Building Tiptap editor..."
|
||
@cd libs/tiptap-editor && npm ci --include=dev && npm run build
|
||
@echo "Tiptap editor built."
|
||
|
||
# dev 用的增量构建:跳过 npm ci(假设 node_modules 已存在),仅 vite build。
|
||
# 与 build-editor 分开,避免每次 make dev 都重装依赖。
|
||
build-editor-incremental:
|
||
@cd libs/tiptap-editor && npm run build
|
||
|
||
dev: build-editor-incremental
|
||
@echo "Building Tiptap editor (incremental)..."
|
||
@echo "Starting tailwindcss watch and dx serve..."
|
||
@tailwindcss -i input.css -o public/style.css --watch & \
|
||
TAILWIND_PID=$$!; \
|
||
trap 'kill $$TAILWIND_PID 2>/dev/null; exit' INT TERM EXIT; \
|
||
SSR_CACHE_SECS=0 dx serve --addr 0.0.0.0
|
||
|
||
css:
|
||
@tailwindcss -i input.css -o public/style.css
|
||
|
||
css-watch:
|
||
@tailwindcss -i input.css -o public/style.css --watch
|
||
|
||
test:
|
||
@cargo test
|
||
|
||
clean:
|
||
@cargo clean
|
||
@rm -f public/style.css public/highlight.css
|
||
@rm -rf uploads/.cache
|