Skip to content

Commit fb49e69

Browse files
committed
Don't compute all paths for builds
1 parent 8226a46 commit fb49e69

File tree

4 files changed

+78
-46
lines changed

4 files changed

+78
-46
lines changed

crates/next-api/src/app.rs

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1636,21 +1636,32 @@ impl Endpoint for AppEndpoint {
16361636
.project()
16371637
.emit_all_output_assets(Vc::cell(output_assets));
16381638

1639-
let node_root = this.app_project.project().node_root();
1640-
let server_paths = all_server_paths(output_assets, node_root)
1639+
let (server_paths, client_paths) = if this
1640+
.app_project
1641+
.project()
1642+
.next_mode()
16411643
.await?
1642-
.clone_value();
1644+
.is_development()
1645+
{
1646+
let node_root = this.app_project.project().node_root();
1647+
let server_paths = all_server_paths(output_assets, node_root)
1648+
.await?
1649+
.clone_value();
16431650

1644-
let client_relative_root = this.app_project.project().client_relative_path();
1645-
let client_paths = async {
1646-
anyhow::Ok(
1647-
all_paths_in_root(output_assets, client_relative_root)
1648-
.await?
1649-
.clone_value(),
1650-
)
1651-
}
1652-
.instrument(tracing::info_span!("client_paths"))
1653-
.await?;
1651+
let client_relative_root = this.app_project.project().client_relative_path();
1652+
let client_paths = async {
1653+
anyhow::Ok(
1654+
all_paths_in_root(output_assets, client_relative_root)
1655+
.await?
1656+
.clone_value(),
1657+
)
1658+
}
1659+
.instrument(tracing::info_span!("client_paths"))
1660+
.await?;
1661+
(server_paths, client_paths)
1662+
} else {
1663+
(vec![], vec![])
1664+
};
16541665

16551666
let written_endpoint = match *output {
16561667
AppEndpointOutput::NodeJs { rsc_chunk, .. } => WrittenEndpoint::NodeJs {

crates/next-api/src/instrumentation.rs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -252,10 +252,14 @@ impl Endpoint for InstrumentationEndpoint {
252252
let _ = output_assets.resolve().await?;
253253
let _ = this.project.emit_all_output_assets(Vc::cell(output_assets));
254254

255-
let node_root = this.project.node_root();
256-
let server_paths = all_server_paths(output_assets, node_root)
257-
.await?
258-
.clone_value();
255+
let server_paths = if this.project.next_mode().await?.is_development() {
256+
let node_root = this.project.node_root();
257+
all_server_paths(output_assets, node_root)
258+
.await?
259+
.clone_value()
260+
} else {
261+
vec![]
262+
};
259263

260264
Ok(WrittenEndpoint::Edge {
261265
server_paths,

crates/next-api/src/middleware.rs

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -277,22 +277,27 @@ impl Endpoint for MiddlewareEndpoint {
277277
let _ = output_assets.resolve().await?;
278278
let _ = this.project.emit_all_output_assets(Vc::cell(output_assets));
279279

280-
let node_root = this.project.node_root();
281-
let server_paths = all_server_paths(output_assets, node_root)
282-
.await?
283-
.clone_value();
284-
285-
// Middleware could in theory have a client path (e.g. `new URL`).
286-
let client_relative_root = this.project.client_relative_path();
287-
let client_paths = async {
288-
anyhow::Ok(
289-
all_paths_in_root(output_assets, client_relative_root)
290-
.await?
291-
.clone_value(),
292-
)
293-
}
294-
.instrument(tracing::info_span!("client_paths"))
295-
.await?;
280+
let (server_paths, client_paths) = if this.project.next_mode().await?.is_development() {
281+
let node_root = this.project.node_root();
282+
let server_paths = all_server_paths(output_assets, node_root)
283+
.await?
284+
.clone_value();
285+
286+
// Middleware could in theory have a client path (e.g. `new URL`).
287+
let client_relative_root = this.project.client_relative_path();
288+
let client_paths = async {
289+
anyhow::Ok(
290+
all_paths_in_root(output_assets, client_relative_root)
291+
.await?
292+
.clone_value(),
293+
)
294+
}
295+
.instrument(tracing::info_span!("client_paths"))
296+
.await?;
297+
(server_paths, client_paths)
298+
} else {
299+
(vec![], vec![])
300+
};
296301

297302
Ok(WrittenEndpoint::Edge {
298303
server_paths,

crates/next-api/src/pages.rs

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1273,20 +1273,32 @@ impl Endpoint for PageEndpoint {
12731273
.emit_all_output_assets(Vc::cell(output_assets));
12741274

12751275
let node_root = this.pages_project.project().node_root();
1276-
let server_paths = all_server_paths(output_assets, node_root)
1276+
1277+
let (server_paths, client_paths) = if this
1278+
.pages_project
1279+
.project()
1280+
.next_mode()
12771281
.await?
1278-
.clone_value();
1279-
1280-
let client_relative_root = this.pages_project.project().client_relative_path();
1281-
let client_paths = async {
1282-
anyhow::Ok(
1283-
all_paths_in_root(output_assets, client_relative_root)
1284-
.await?
1285-
.clone_value(),
1286-
)
1287-
}
1288-
.instrument(tracing::info_span!("client_paths"))
1289-
.await?;
1282+
.is_development()
1283+
{
1284+
let server_paths = all_server_paths(output_assets, node_root)
1285+
.await?
1286+
.clone_value();
1287+
1288+
let client_relative_root = this.pages_project.project().client_relative_path();
1289+
let client_paths = async {
1290+
anyhow::Ok(
1291+
all_paths_in_root(output_assets, client_relative_root)
1292+
.await?
1293+
.clone_value(),
1294+
)
1295+
}
1296+
.instrument(tracing::info_span!("client_paths"))
1297+
.await?;
1298+
(server_paths, client_paths)
1299+
} else {
1300+
(vec![], vec![])
1301+
};
12901302

12911303
let node_root = &node_root.await?;
12921304
let written_endpoint = match *output {

0 commit comments

Comments
 (0)