@zhin.js/cli 1.0.10 → 1.0.11

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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @zhin.js/cli
2
2
 
3
+ ## 1.0.11
4
+
5
+ ### Patch Changes
6
+
7
+ - 3bc5d56: fix: 内存优化
8
+
3
9
  ## 1.0.10
4
10
 
5
11
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,YAAY,SAyDrB,CAAC"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,YAAY,SA2DrB,CAAC"}
@@ -7,6 +7,8 @@ export const buildCommand = new Command('build')
7
7
  .description('构建插件项目')
8
8
  .argument('[plugin]', '插件名称(默认构建所有插件)')
9
9
  .option('--clean', '清理输出目录', false)
10
+ .option('--production', '生产构建(启用 Tree Shaking)', true)
11
+ .option('--analyze', '分析包体积', false)
10
12
  .action(async (pluginName, options) => {
11
13
  try {
12
14
  const cwd = process.cwd();
@@ -27,7 +29,7 @@ export const buildCommand = new Command('build')
27
29
  logger.error(`未找到插件: ${pluginName}`);
28
30
  process.exit(1);
29
31
  }
30
- await buildPlugin(pluginPath, pluginName, options.clean);
32
+ await buildPlugin(pluginPath, pluginName, options);
31
33
  }
32
34
  else {
33
35
  // 构建所有插件
@@ -44,7 +46,7 @@ export const buildCommand = new Command('build')
44
46
  logger.info(`找到 ${validPlugins.length} 个插件,开始构建...`);
45
47
  for (const plugin of validPlugins) {
46
48
  const pluginPath = path.join(pluginsDir, plugin);
47
- await buildPlugin(pluginPath, plugin, options.clean);
49
+ await buildPlugin(pluginPath, plugin, options);
48
50
  }
49
51
  }
50
52
  }
@@ -53,11 +55,11 @@ export const buildCommand = new Command('build')
53
55
  process.exit(1);
54
56
  }
55
57
  });
56
- async function buildPlugin(pluginPath, pluginName, clean) {
58
+ async function buildPlugin(pluginPath, pluginName, options) {
57
59
  return new Promise((resolve, reject) => {
58
60
  logger.info(`正在构建插件: ${pluginName}...`);
59
61
  // 清理输出目录
60
- if (clean) {
62
+ if (options.clean) {
61
63
  const libPath = path.join(pluginPath, 'lib');
62
64
  const distPath = path.join(pluginPath, 'dist');
63
65
  if (fs.existsSync(libPath)) {
@@ -69,11 +71,20 @@ async function buildPlugin(pluginPath, pluginName, clean) {
69
71
  logger.info(`✓ 已清理 ${pluginName}/dist`);
70
72
  }
71
73
  }
74
+ // 设置环境变量
75
+ const env = {
76
+ ...process.env,
77
+ NODE_ENV: options.production ? 'production' : 'development',
78
+ };
79
+ if (options.production) {
80
+ logger.info(`📦 生产构建模式 (启用 Tree Shaking)`);
81
+ }
72
82
  // 使用 pnpm build 构建插件
73
83
  const child = spawn('pnpm', ['build'], {
74
84
  cwd: pluginPath,
75
85
  stdio: 'inherit',
76
86
  shell: true,
87
+ env,
77
88
  });
78
89
  child.on('close', (code) => {
79
90
  if (code === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zhin.js/cli",
3
- "version": "1.0.10",
3
+ "version": "1.0.11",
4
4
  "description": "Zhin机器人框架CLI工具",
5
5
  "type": "module",
6
6
  "main": "./lib/index.js",
@@ -8,7 +8,9 @@ export const buildCommand = new Command('build')
8
8
  .description('构建插件项目')
9
9
  .argument('[plugin]', '插件名称(默认构建所有插件)')
10
10
  .option('--clean', '清理输出目录', false)
11
- .action(async (pluginName: string | undefined, options: { clean: boolean }) => {
11
+ .option('--production', '生产构建(启用 Tree Shaking)', true)
12
+ .option('--analyze', '分析包体积', false)
13
+ .action(async (pluginName: string | undefined, options: { clean: boolean; production: boolean; analyze: boolean }) => {
12
14
  try {
13
15
  const cwd = process.cwd();
14
16
 
@@ -34,7 +36,7 @@ export const buildCommand = new Command('build')
34
36
  process.exit(1);
35
37
  }
36
38
 
37
- await buildPlugin(pluginPath, pluginName, options.clean);
39
+ await buildPlugin(pluginPath, pluginName, options);
38
40
  } else {
39
41
  // 构建所有插件
40
42
  const plugins = await fs.readdir(pluginsDir);
@@ -53,7 +55,7 @@ export const buildCommand = new Command('build')
53
55
 
54
56
  for (const plugin of validPlugins) {
55
57
  const pluginPath = path.join(pluginsDir, plugin);
56
- await buildPlugin(pluginPath, plugin, options.clean);
58
+ await buildPlugin(pluginPath, plugin, options);
57
59
  }
58
60
  }
59
61
 
@@ -63,12 +65,12 @@ export const buildCommand = new Command('build')
63
65
  }
64
66
  });
65
67
 
66
- async function buildPlugin(pluginPath: string, pluginName: string, clean: boolean): Promise<void> {
68
+ async function buildPlugin(pluginPath: string, pluginName: string, options: { clean: boolean; production: boolean; analyze: boolean }): Promise<void> {
67
69
  return new Promise((resolve, reject) => {
68
70
  logger.info(`正在构建插件: ${pluginName}...`);
69
71
 
70
72
  // 清理输出目录
71
- if (clean) {
73
+ if (options.clean) {
72
74
  const libPath = path.join(pluginPath, 'lib');
73
75
  const distPath = path.join(pluginPath, 'dist');
74
76
 
@@ -83,11 +85,22 @@ async function buildPlugin(pluginPath: string, pluginName: string, clean: boolea
83
85
  }
84
86
  }
85
87
 
88
+ // 设置环境变量
89
+ const env = {
90
+ ...process.env,
91
+ NODE_ENV: options.production ? 'production' : 'development',
92
+ };
93
+
94
+ if (options.production) {
95
+ logger.info(`📦 生产构建模式 (启用 Tree Shaking)`);
96
+ }
97
+
86
98
  // 使用 pnpm build 构建插件
87
99
  const child = spawn('pnpm', ['build'], {
88
100
  cwd: pluginPath,
89
101
  stdio: 'inherit',
90
102
  shell: true,
103
+ env,
91
104
  });
92
105
 
93
106
  child.on('close', (code) => {