collabdocchat 2.4.6 → 2.4.8

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/bin/cli.js CHANGED
@@ -34,7 +34,7 @@ const npmCmd = isWindows ? 'npm.cmd' : 'npm';
34
34
  const startProcess = spawn(npmCmd, ['start'], {
35
35
  cwd: rootDir,
36
36
  stdio: 'inherit',
37
- shell: false
37
+ shell: isWindows // Windows 需要 shell
38
38
  });
39
39
 
40
40
  startProcess.on('error', (error) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "collabdocchat",
3
- "version": "2.4.6",
3
+ "version": "2.4.8",
4
4
  "description": "开源的实时协作文档聊天平台 - 集成任务管理、多人文档编辑、智能点名功能",
5
5
  "main": "./server/index.js",
6
6
  "type": "module",
@@ -33,7 +33,7 @@ function installDevDependencies() {
33
33
  const install = spawn(npmCmd, ['install'], {
34
34
  cwd: rootDir,
35
35
  stdio: 'inherit',
36
- shell: false
36
+ shell: isWindows // Windows 需要 shell
37
37
  });
38
38
 
39
39
  install.on('close', (code) => {
@@ -187,16 +187,16 @@ async function main() {
187
187
  process.exit(1);
188
188
  }
189
189
 
190
- // 检查并安装 devDependencies
191
- if (!checkDevDependencies()) {
192
- console.log('⚠️ 检测到缺少开发依赖\n');
193
- try {
194
- await installDevDependencies();
195
- } catch (error) {
196
- console.error(' 依赖安装失败:', error.message);
197
- console.error('\n💡 请手动运行: npm install\n');
198
- process.exit(1);
199
- }
190
+ // 检查是否有开发依赖(全局安装时可能没有)
191
+ const hasDevDeps = checkDevDependencies();
192
+
193
+ if (!hasDevDeps) {
194
+ console.log('⚠️ 检测到全局安装模式(无开发依赖)');
195
+ console.log('💡 将只启动服务器,不启动客户端\n');
196
+ console.log('📝 如需完整开发环境,请:');
197
+ console.log(' 1. 克隆项目到本地目录');
198
+ console.log(' 2. 运行 npm install');
199
+ console.log(' 3. 运行 npm run dev\n');
200
200
  }
201
201
 
202
202
  // 启动服务器
@@ -211,38 +211,53 @@ async function main() {
211
211
  process.exit(1);
212
212
  }
213
213
 
214
- // 启动客户端
215
- const client = startClient();
216
-
217
- // 等待客户端就绪后打开浏览器
218
- setTimeout(async () => {
219
- try {
220
- await waitForServer(CLIENT_URL, 20, 500);
221
- console.log(`\n🌐 正在打开浏览器: ${CLIENT_URL}`);
222
- openBrowser(CLIENT_URL);
223
- console.log('\n✅ 应用启动成功!');
224
- console.log('\n💡 提示:');
225
- console.log(` • 服务器: http://localhost:${PORT}`);
226
- console.log(' • 客户端: http://localhost:5173');
227
- console.log(' 默认账号: admin / admin123');
228
- console.log('\n⚠️ 按 Ctrl+C 停止服务\n');
229
- } catch (error) {
230
- console.log(`\n⚠️ 客户端可能还在启动中,请手动访问: ${CLIENT_URL}`);
231
- openBrowser(CLIENT_URL);
232
- }
233
- }, 3000);
214
+ let client = null;
215
+
216
+ // 只有在有开发依赖时才启动客户端
217
+ if (hasDevDeps) {
218
+ // 启动客户端
219
+ client = startClient();
220
+
221
+ // 等待客户端就绪后打开浏览器
222
+ setTimeout(async () => {
223
+ try {
224
+ await waitForServer(CLIENT_URL, 20, 500);
225
+ console.log(`\n🌐 正在打开浏览器: ${CLIENT_URL}`);
226
+ openBrowser(CLIENT_URL);
227
+ console.log('\n✅ 应用启动成功!');
228
+ console.log('\n💡 提示:');
229
+ console.log(` • 服务器: http://localhost:${PORT}`);
230
+ console.log(' • 客户端: http://localhost:5173');
231
+ console.log(' • 默认账号: admin / admin123');
232
+ console.log('\n⚠️ 按 Ctrl+C 停止服务\n');
233
+ } catch (error) {
234
+ console.log(`\n⚠️ 客户端可能还在启动中,请手动访问: ${CLIENT_URL}`);
235
+ openBrowser(CLIENT_URL);
236
+ }
237
+ }, 3000);
238
+ } else {
239
+ // 全局安装模式,只有服务器
240
+ console.log('\n✅ 服务器启动成功!');
241
+ console.log('\n💡 提示:');
242
+ console.log(` • API 服务器: http://localhost:${PORT}`);
243
+ console.log(' • 默认账号: admin / admin123');
244
+ console.log('\n📝 注意:');
245
+ console.log(' 全局安装模式仅提供 API 服务器');
246
+ console.log(' 如需完整的前端界面,请在本地项目中运行');
247
+ console.log('\n⚠️ 按 Ctrl+C 停止服务\n');
248
+ }
234
249
 
235
250
  // 处理退出信号
236
251
  process.on('SIGINT', () => {
237
252
  console.log('\n\n🛑 正在关闭服务器...');
238
253
  server.kill();
239
- client.kill();
254
+ if (client) client.kill();
240
255
  process.exit(0);
241
256
  });
242
257
 
243
258
  process.on('SIGTERM', () => {
244
259
  server.kill();
245
- client.kill();
260
+ if (client) client.kill();
246
261
  process.exit(0);
247
262
  });
248
263
  }