Skip to content

Commit 09bcd94

Browse files
authored
fix: fix stdout log missing (#2)
1 parent 28509f0 commit 09bcd94

File tree

4 files changed

+14
-8
lines changed

4 files changed

+14
-8
lines changed

pnpm-lock.yaml

Lines changed: 0 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/logger.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ export class Logger {
3737
console[logMap[type]](this[type]);
3838
}
3939

40+
emitLogOnce(type: 'stdout' | 'stderr', log: string) {
41+
console[logMap[type]](log);
42+
}
43+
4044
reset(type: 'stdout' | 'stderr') {
4145
this[type] = '';
4246
}

src/workspace-dev.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ export class WorkspaceDevRunner {
3737
private graph: Graph;
3838
private visited: Record<string, boolean>;
3939
private visiting: Record<string, boolean>;
40+
private matched: Record<string, boolean>;
4041
private metaData!: Package['packageJson'];
4142

4243
constructor(options: WorkspaceDevRunnerOptions) {
@@ -46,6 +47,7 @@ export class WorkspaceDevRunner {
4647
this.packages = [];
4748
this.visited = {};
4849
this.visiting = {};
50+
this.matched = {};
4951
this.graph = new Graph({ directed: true });
5052
}
5153

@@ -80,6 +82,7 @@ export class WorkspaceDevRunner {
8082
this.graph.setNode(name, node);
8183
this.visited[name] = false;
8284
this.visiting[name] = false;
85+
this.matched[name] = false;
8386

8487
const packageName = name;
8588
const deps = {
@@ -185,6 +188,10 @@ export class WorkspaceDevRunner {
185188
});
186189
child.stdout.on('data', async (data) => {
187190
const stdout = data.toString();
191+
if (this.matched[node]) {
192+
logger.emitLogOnce('stdout', stdout);
193+
return;
194+
}
188195
logger.appendLog('stdout', stdout);
189196
const match = config?.match;
190197
const matchResult = match
@@ -193,6 +200,7 @@ export class WorkspaceDevRunner {
193200

194201
if (matchResult) {
195202
logger.flushStdout();
203+
this.matched[node] = true;
196204
this.visited[node] = true;
197205
this.visiting[node] = false;
198206
await this.start();
@@ -202,9 +210,7 @@ export class WorkspaceDevRunner {
202210

203211
child.stderr.on('data', (data) => {
204212
const stderr = data.toString();
205-
logger.appendLog('stderr', stderr);
206-
logger.emitLog('stderr');
207-
logger.reset('stderr');
213+
logger.emitLogOnce('stderr', stderr);
208214
});
209215

210216
child.on('close', () => {});

test/app/package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@
77
"dev": "rsbuild dev"
88
},
99
"dependencies": {
10-
"@e2e/workspace-dev-components": "workspace:*",
11-
"@e2e/workspace-dev-utils2": "workspace:*"
10+
"@e2e/workspace-dev-components": "workspace:*"
1211
},
1312
"devDependencies": {
1413
"rsbuild-plugin-workspace-dev": "workspace:*"

0 commit comments

Comments
 (0)