Skip to content

Commit e045476

Browse files
fix fallback overlay (vercel#2829)
1 parent beebae2 commit e045476

File tree

6 files changed

+15
-10
lines changed

6 files changed

+15
-10
lines changed

.editorconfig

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,6 @@ indent_style = space
99
insert_final_newline = true
1010
trim_trailing_whitespace = true
1111

12-
[*.rs]
13-
indent_size = 4
14-
1512
[*.t]
1613
trim_trailing_whitespace = false
1714

crates/next-core/src/app_source.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ pub async fn create_app_source(
255255
let server_runtime_entries =
256256
vec![ProcessEnvAssetVc::new(project_root, env).as_ecmascript_chunk_placeable()];
257257

258-
let fallback_page = get_fallback_page(project_root, server_root, browserslist_query);
258+
let fallback_page = get_fallback_page(project_root, server_root, env, browserslist_query);
259259

260260
Ok(create_app_source_for_directory(
261261
context_ssr,

crates/next-core/src/fallback.rs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use std::collections::HashMap;
22

33
use anyhow::{bail, Result};
44
use turbo_tasks::Value;
5+
use turbo_tasks_env::ProcessEnvVc;
56
use turbo_tasks_fs::FileSystemPathVc;
67
use turbopack::{
78
ecmascript::EcmascriptModuleAssetVc, transition::TransitionsByNameVc, ModuleAssetContextVc,
@@ -17,7 +18,7 @@ use crate::{
1718
embed_js::attached_next_js_package_path,
1819
next_client::context::{
1920
get_client_chunking_context, get_client_environment, get_client_module_options_context,
20-
get_client_resolve_options_context, ContextType,
21+
get_client_resolve_options_context, get_client_runtime_entries, ContextType,
2122
},
2223
next_import_map::insert_next_shared_aliases,
2324
runtime::resolve_runtime_request,
@@ -27,13 +28,15 @@ use crate::{
2728
pub async fn get_fallback_page(
2829
project_root: FileSystemPathVc,
2930
dev_server_root: FileSystemPathVc,
31+
env: ProcessEnvVc,
3032
browserslist_query: &str,
3133
) -> Result<DevHtmlAssetVc> {
32-
let ty = Value::new(ContextType::Other);
34+
let ty = Value::new(ContextType::Fallback);
3335
let environment = get_client_environment(browserslist_query);
3436
let resolve_options_context = get_client_resolve_options_context(project_root, ty);
3537
let module_options_context = get_client_module_options_context(project_root, environment, ty);
3638
let chunking_context = get_client_chunking_context(project_root, dev_server_root, ty);
39+
let entries = get_client_runtime_entries(project_root, env, ty);
3740

3841
let mut import_map = ImportMap::empty();
3942
insert_next_shared_aliases(&mut import_map, attached_next_js_package_path(project_root));
@@ -46,6 +49,8 @@ pub async fn get_fallback_page(
4649
)
4750
.into();
4851

52+
let runtime_entries = entries.resolve_entries(context);
53+
4954
let fallback_chunk = resolve_runtime_request(
5055
PlainResolveOriginVc::new(context, project_root).into(),
5156
"entry/fallback",
@@ -59,7 +64,7 @@ pub async fn get_fallback_page(
5964
bail!("fallback runtime entry is not an ecmascript module");
6065
};
6166

62-
let chunk = module.as_evaluated_chunk(chunking_context, None);
67+
let chunk = module.as_evaluated_chunk(chunking_context, Some(runtime_entries));
6368

6469
Ok(DevHtmlAssetVc::new(
6570
dev_server_root.join("fallback.html"),

crates/next-core/src/next_client/context.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ pub fn get_client_environment(browserslist_query: &str) -> EnvironmentVc {
5555
pub enum ContextType {
5656
Pages { pages_dir: FileSystemPathVc },
5757
App { app_dir: FileSystemPathVc },
58+
Fallback,
5859
Other,
5960
}
6061

@@ -167,7 +168,7 @@ pub fn get_client_chunking_context(
167168
ContextType::Pages { .. } | ContextType::App { .. } => {
168169
server_root.join("/_next/static/chunks")
169170
}
170-
ContextType::Other => server_root.join("/_chunks"),
171+
ContextType::Fallback | ContextType::Other => server_root.join("/_chunks"),
171172
},
172173
get_client_assets_path(server_root, ty),
173174
)
@@ -184,7 +185,7 @@ pub fn get_client_assets_path(
184185
ContextType::Pages { .. } | ContextType::App { .. } => {
185186
server_root.join("/_next/static/assets")
186187
}
187-
ContextType::Other => server_root.join("/_assets"),
188+
ContextType::Fallback | ContextType::Other => server_root.join("/_assets"),
188189
}
189190
}
190191

crates/next-core/src/next_import_map.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ pub fn get_next_client_import_map(
5959
request_to_import_mapping(app_dir, "next/dist/compiled/react-dom/*"),
6060
);
6161
}
62+
ContextType::Fallback => {}
6263
ContextType::Other => {}
6364
}
6465
import_map.cell()
@@ -86,6 +87,7 @@ pub fn get_next_client_fallback_import_map(ty: Value<ContextType>) -> ImportMapV
8687
);
8788
}
8889
}
90+
ContextType::Fallback => {}
8991
ContextType::Other => {}
9092
}
9193

crates/next-core/src/server_rendered_source.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ pub async fn create_server_rendered_source(
113113
let server_runtime_entries =
114114
vec![ProcessEnvAssetVc::new(project_path, env).as_ecmascript_chunk_placeable()];
115115

116-
let fallback_page = get_fallback_page(project_path, server_root, browserslist_query);
116+
let fallback_page = get_fallback_page(project_path, server_root, env, browserslist_query);
117117

118118
let server_rendered_source = create_server_rendered_source_for_directory(
119119
project_path,

0 commit comments

Comments
 (0)