30 lines
971 B
TypeScript
30 lines
971 B
TypeScript
|
import { MongoMemoryServer } from 'mongodb-memory-server';
|
||
|
import { exec } from 'child_process';
|
||
|
|
||
|
async function startServerAndRunScript() {
|
||
|
// 启动 MongoDB 内存服务器
|
||
|
const mongod = await MongoMemoryServer.create();
|
||
|
const mongoUri = mongod.getUri();
|
||
|
|
||
|
console.log('MongoDB Memory Server started:', mongoUri);
|
||
|
|
||
|
// 通过 nodemon 运行另一个脚本,并传递 MongoDB 连接 URL 作为环境变量
|
||
|
const nodemon = exec(`npm run copy && nodemon -e js,mjs,json,ts --exec 'xiaojuSurveyMongoUrl=${mongoUri} npm run launch:local' --watch ./src`);
|
||
|
|
||
|
nodemon.stdout?.on('data', (data) => {
|
||
|
console.log(data);
|
||
|
});
|
||
|
|
||
|
nodemon.stderr?.on('data', (data) => {
|
||
|
console.error(data);
|
||
|
});
|
||
|
|
||
|
nodemon.on('close', (code) => {
|
||
|
console.log(`Nodemon process exited with code ${code}`);
|
||
|
mongod.stop(); // 停止 MongoDB 内存服务器
|
||
|
});
|
||
|
}
|
||
|
|
||
|
startServerAndRunScript().catch((err) => {
|
||
|
console.error('Error starting server and script:', err);
|
||
|
});
|