@lark-apaas/miaoda-cli 0.1.36 → 0.1.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/README.md +23 -0
  2. package/dist/cli/commands/app/index.js +81 -0
  3. package/dist/cli/handlers/app/index.js +6 -1
  4. package/dist/cli/handlers/app/init.js +10 -2
  5. package/dist/cli/handlers/app/migrate.js +2 -4
  6. package/dist/cli/handlers/app/pack.js +256 -0
  7. package/dist/cli/handlers/skills/sync.js +56 -31
  8. package/dist/config/sync-configs/design-stack.js +1 -1
  9. package/dist/config/sync-configs/index.js +3 -1
  10. package/dist/config/sync-configs/nestjs-react-fullstack.js +4 -4
  11. package/dist/config/sync-configs/vite-react.js +20 -0
  12. package/dist/services/app/pack/archive.js +35 -0
  13. package/dist/services/app/pack/copy-tree.js +51 -0
  14. package/dist/services/app/pack/download.js +52 -0
  15. package/dist/services/app/pack/index.js +27 -0
  16. package/dist/services/app/pack/inline-babel.js +91 -0
  17. package/dist/services/app/pack/naming.js +65 -0
  18. package/dist/services/app/pack/rewrite.js +80 -0
  19. package/dist/services/app/pack/scan.js +95 -0
  20. package/dist/services/app/pack/strategies.js +313 -0
  21. package/dist/services/app/pack/upload.js +110 -0
  22. package/dist/services/deploy/modern/patch/source-scan.js +3 -40
  23. package/dist/utils/coding-steering.js +179 -5
  24. package/dist/utils/dir-lock.js +103 -0
  25. package/dist/utils/env.js +3 -3
  26. package/dist/utils/exclude-patterns.js +49 -0
  27. package/dist/utils/file-ops.js +43 -0
  28. package/dist/utils/sandbox-skills.js +47 -30
  29. package/package.json +1 -1
  30. package/upgrade/templates/nestjs-react-fullstack/templates/scripts/build.sh +5 -0
  31. package/upgrade/templates/vite-react/templates/scripts/build.sh +61 -0
@@ -0,0 +1,61 @@
1
+ #!/bin/bash
2
+ set -e
3
+
4
+ ROOT="$(cd "$(dirname "$0")/.." && pwd)"
5
+ OUTPUT="$ROOT/dist/output"
6
+ OUTPUT_RESOURCE="$ROOT/dist/output_resource"
7
+ OUTPUT_STATIC="$ROOT/dist/output_static"
8
+
9
+ # 映射平台环境变量到 preset 期望的变量名
10
+ # MIAODA_APP_ID → /app/<appId> 作为客户端 base path
11
+ # MIAODA_RESOURCE_CDN_PREFIX → assets (JS/CSS) 的 CDN 前缀
12
+ # CLI 注入约定见 miaoda-cli src/services/deploy/modern/atoms/build.ts
13
+ export CLIENT_BASE_PATH="${MIAODA_APP_ID:+/app/$MIAODA_APP_ID}"
14
+ export ASSETS_CDN_PATH="${MIAODA_RESOURCE_CDN_PREFIX:-/}"
15
+ export STATIC_ASSETS_BASE_URL="${MIAODA_STATIC_CDN_PREFIX}"
16
+ export NODE_ENV="${NODE_ENV:-production}"
17
+
18
+ # 清理
19
+ rm -rf "$ROOT/dist"
20
+
21
+ # 1. Vite 构建 → dist/client/(相对于项目根目录输出)
22
+ npx vite build --outDir "$ROOT/dist/client" --emptyOutDir
23
+
24
+ # 2. public/ 静态资源 + HTML → dist/output/(模型 B:public = 应用根目录,同源 /app/<appId>/*)
25
+ mkdir -p "$OUTPUT"
26
+ # 2a. public/*:vite copyPublicDir 已把 public/* 平铺进 dist/client,但下面白名单只取
27
+ # *.html/routes.json,其余(favicon / 图片 / 运行时 fetch 的数据文件)会随 dist/client 被删。
28
+ # 从源 public/ 补拷到 output/(同源根),让 fetch('/x') / resolveAppUrl('/x') 线上可用。
29
+ # 先拷 public、再拷 HTML,保证构建产出的 index.html/routes.json 覆盖 public 里的同名文件(若有)。
30
+ if [ -d "$ROOT/public" ]; then
31
+ cp -R "$ROOT/public/." "$OUTPUT/"
32
+ fi
33
+ # 2b. HTML + routes.json(构建产物)
34
+ find "$ROOT/dist/client" -maxdepth 1 \( -name '*.html' -o -name 'routes.json' \) -exec cp {} "$OUTPUT/" \;
35
+
36
+ # 3. assets/ → dist/output_resource/(JS/CSS/字体,上传到 CDN)
37
+ if [ -d "$ROOT/dist/client/assets" ]; then
38
+ mkdir -p "$OUTPUT_RESOURCE"
39
+ cp -r "$ROOT/dist/client/assets" "$OUTPUT_RESOURCE/"
40
+ fi
41
+
42
+ # 4. 私有静态资源 → dist/output_static/(排除代码文件)
43
+ if [ -d "$ROOT/shared/static" ]; then
44
+ mkdir -p "$OUTPUT_STATIC"
45
+ rsync -a --exclude='*.ts' --exclude='*.tsx' --exclude='*.js' --exclude='*.jsx' "$ROOT/shared/static/" "$OUTPUT_STATIC/"
46
+ fi
47
+
48
+ # 5. capability 配置 → dist/output_capabilities/
49
+ if [ -d "$ROOT/shared/capabilities" ]; then
50
+ mkdir -p "$ROOT/dist/output_capabilities"
51
+ cp -r "$ROOT/shared/capabilities/." "$ROOT/dist/output_capabilities/"
52
+ fi
53
+
54
+ # 清理中间产物
55
+ rm -rf "$ROOT/dist/client"
56
+
57
+ echo "Build complete"
58
+ echo " HTML → dist/output/"
59
+ [ -d "$OUTPUT_RESOURCE" ] && echo " Resource → dist/output_resource/" || true
60
+ [ -d "$OUTPUT_STATIC" ] && echo " Static → dist/output_static/" || true
61
+ [ -d "$ROOT/dist/output_capabilities" ] && echo " Capabilities → dist/output_capabilities/" || true