@lark-apaas/fullstack-cli 1.1.57 → 1.1.58-alpha.1

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lark-apaas/fullstack-cli",
3
- "version": "1.1.57",
3
+ "version": "1.1.58-alpha.1",
4
4
  "description": "CLI tool for fullstack template management",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -6,6 +6,13 @@ const fs = require('fs');
6
6
  const path = require('path');
7
7
 
8
8
  const ROOT_DIR = path.resolve(__dirname, '..');
9
+
10
+ // 加载提交的 .env,供读取构建期配置(如 MIAODA_RUNTIME_ENTRIES)。dotenv 不一定安装 → 静默降级。
11
+ try {
12
+ require('dotenv').config({ path: path.join(ROOT_DIR, '.env') });
13
+ } catch {
14
+ // dotenv 未安装:跳过;MIAODA_RUNTIME_ENTRIES 仍可来自真实环境变量
15
+ }
9
16
  const DIST_DIR = path.join(ROOT_DIR, 'dist');
10
17
  const DIST_SERVER_DIR = path.join(DIST_DIR, 'server');
11
18
  const ROOT_PACKAGE_JSON = path.join(ROOT_DIR, 'package.json');
@@ -16,6 +23,19 @@ const OUT_PACKAGE_JSON = path.join(DIST_DIR, 'package.json');
16
23
  // Server 入口文件
17
24
  const SERVER_ENTRY = path.join(DIST_SERVER_DIR, 'main.js');
18
25
 
26
+ // 额外 trace 入口:经 new Function/动态 import 加载、nft 无法从 main.js 静态发现的 ESM runtime。
27
+ // 应用在提交的 .env 里用 MIAODA_RUNTIME_ENTRIES 声明(逗号分隔,路径相对 dist/server)。
28
+ const RUNTIME_ENTRIES = (process.env.MIAODA_RUNTIME_ENTRIES || '')
29
+ .split(',')
30
+ .map((s) => s.trim())
31
+ .filter(Boolean)
32
+ .map((rel) => path.join(DIST_SERVER_DIR, rel))
33
+ .filter((p) => {
34
+ if (fs.existsSync(p)) return true;
35
+ console.warn(`⚠️ MIAODA_RUNTIME_ENTRIES 指定的入口不存在,已忽略: ${p}`);
36
+ return false;
37
+ });
38
+
19
39
  // Node.js 内置模块列表
20
40
  const BUILTIN_MODULES = new Set([
21
41
  'assert', 'buffer', 'child_process', 'cluster', 'crypto', 'dgram', 'dns',
@@ -145,12 +165,15 @@ async function smartPrune() {
145
165
  }
146
166
 
147
167
  console.log(`📂 分析入口文件: ${path.relative(ROOT_DIR, SERVER_ENTRY)}`);
168
+ if (RUNTIME_ENTRIES.length) {
169
+ console.log(`📎 额外 trace 入口 (${RUNTIME_ENTRIES.length}): ${RUNTIME_ENTRIES.map((p) => path.relative(DIST_SERVER_DIR, p)).join(', ')}`);
170
+ }
148
171
 
149
172
  // 2. 使用 @vercel/nft 追踪依赖
150
173
  console.log('🔎 追踪实际依赖...');
151
174
  const analyzeStart = Date.now();
152
175
 
153
- const { fileList } = await nodeFileTrace([SERVER_ENTRY], {
176
+ const { fileList } = await nodeFileTrace([SERVER_ENTRY, ...RUNTIME_ENTRIES], {
154
177
  base: ROOT_DIR,
155
178
  processCwd: ROOT_DIR,
156
179
  ts: false, // 禁用 TS 解析