From 4548fed1cf3a95eb060e2bdd2a917d93a0c39164 Mon Sep 17 00:00:00 2001 From: Tim Neutkens Date: Wed, 17 Jan 2024 14:54:17 +0100 Subject: [PATCH] Skip postcss config location resolving in node_modules (#60697) ## What? Skip postcss config resolving in node_modules for Turbopack. This matches current Next.js on webpack closer as that only resolves the postcss config from the project root. The additional feature Turbopack has is that it can find a postcss config relative to the css being compiled. This is useful for e.g. reducing the amount of overhead certain postcss plugins that only have to run against a single file take (i.e. Tailwindcss). Depends on github.com/vercel/turbo/pull/7012 landing first. Closes NEXT-2109 --------- Co-authored-by: Tobias Koppers --- Cargo.lock | 70 +++++++++---------- Cargo.toml | 6 +- .../next-core/src/next_client/context.rs | 27 +++++-- .../next-core/src/next_server/context.rs | 56 +++++++++++---- packages/next/package.json | 2 +- pnpm-lock.yaml | 10 +-- 6 files changed, 105 insertions(+), 66 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index dd88840134bb8..779b0ae85c1b7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -321,7 +321,7 @@ dependencies = [ [[package]] name = "auto-hash-map" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "serde", "smallvec", @@ -3498,7 +3498,7 @@ dependencies = [ [[package]] name = "node-file-trace" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "anyhow", "serde", @@ -7538,7 +7538,7 @@ dependencies = [ [[package]] name = "turbo-tasks" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "anyhow", "async-trait", @@ -7570,7 +7570,7 @@ dependencies = [ [[package]] name = "turbo-tasks-build" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "anyhow", "cargo-lock", @@ -7582,7 +7582,7 @@ dependencies = [ [[package]] name = "turbo-tasks-bytes" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "anyhow", "bytes", @@ -7597,7 +7597,7 @@ dependencies = [ [[package]] name = "turbo-tasks-env" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "anyhow", "dotenvs", @@ -7611,7 +7611,7 @@ dependencies = [ [[package]] name = "turbo-tasks-fetch" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "anyhow", "indexmap 1.9.3", @@ -7628,7 +7628,7 @@ dependencies = [ [[package]] name = "turbo-tasks-fs" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "anyhow", "auto-hash-map", @@ -7659,7 +7659,7 @@ dependencies = [ [[package]] name = "turbo-tasks-hash" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "base16", "hex", @@ -7671,7 +7671,7 @@ dependencies = [ [[package]] name = "turbo-tasks-macros" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "anyhow", "convert_case 0.6.0", @@ -7685,7 +7685,7 @@ dependencies = [ [[package]] name = "turbo-tasks-macros-shared" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "proc-macro2", "quote", @@ -7695,7 +7695,7 @@ dependencies = [ [[package]] name = "turbo-tasks-malloc" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "mimalloc", ] @@ -7703,7 +7703,7 @@ dependencies = [ [[package]] name = "turbo-tasks-memory" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "anyhow", "auto-hash-map", @@ -7728,7 +7728,7 @@ dependencies = [ [[package]] name = "turbopack" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "anyhow", "async-recursion", @@ -7760,7 +7760,7 @@ dependencies = [ [[package]] name = "turbopack-binding" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "auto-hash-map", "mdxjs", @@ -7801,7 +7801,7 @@ dependencies = [ [[package]] name = "turbopack-build" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "anyhow", "indexmap 1.9.3", @@ -7825,7 +7825,7 @@ dependencies = [ [[package]] name = "turbopack-cli-utils" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "anyhow", "clap 4.4.2", @@ -7843,7 +7843,7 @@ dependencies = [ [[package]] name = "turbopack-core" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "anyhow", "async-recursion", @@ -7873,7 +7873,7 @@ dependencies = [ [[package]] name = "turbopack-css" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "anyhow", "async-trait", @@ -7900,7 +7900,7 @@ dependencies = [ [[package]] name = "turbopack-dev" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "anyhow", "indexmap 1.9.3", @@ -7924,7 +7924,7 @@ dependencies = [ [[package]] name = "turbopack-dev-server" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "anyhow", "async-compression", @@ -7961,7 +7961,7 @@ dependencies = [ [[package]] name = "turbopack-ecmascript" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "anyhow", "async-trait", @@ -7996,7 +7996,7 @@ dependencies = [ [[package]] name = "turbopack-ecmascript-hmr-protocol" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "serde", "serde_json", @@ -8007,7 +8007,7 @@ dependencies = [ [[package]] name = "turbopack-ecmascript-plugins" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "anyhow", "async-trait", @@ -8030,7 +8030,7 @@ dependencies = [ [[package]] name = "turbopack-ecmascript-runtime" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "anyhow", "indoc", @@ -8047,7 +8047,7 @@ dependencies = [ [[package]] name = "turbopack-env" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "anyhow", "indexmap 1.9.3", @@ -8063,7 +8063,7 @@ dependencies = [ [[package]] name = "turbopack-image" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "anyhow", "base64 0.21.4", @@ -8083,7 +8083,7 @@ dependencies = [ [[package]] name = "turbopack-json" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "anyhow", "serde", @@ -8098,7 +8098,7 @@ dependencies = [ [[package]] name = "turbopack-mdx" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "anyhow", "mdxjs", @@ -8113,7 +8113,7 @@ dependencies = [ [[package]] name = "turbopack-node" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "anyhow", "async-stream", @@ -8148,7 +8148,7 @@ dependencies = [ [[package]] name = "turbopack-static" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "anyhow", "serde", @@ -8164,7 +8164,7 @@ dependencies = [ [[package]] name = "turbopack-swc-utils" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "swc_core", "turbo-tasks", @@ -8175,7 +8175,7 @@ dependencies = [ [[package]] name = "turbopack-trace-utils" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "anyhow", "crossbeam-channel", @@ -8191,7 +8191,7 @@ dependencies = [ [[package]] name = "turbopack-wasm" version = "0.1.0" -source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.1#145d71b0a0e4ddaffda006a07eccc55e33aad75e" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-240117.3#438bdd0b198163a37ff6050cf8ae2c7ca8b07753" dependencies = [ "anyhow", "indexmap 1.9.3", @@ -8213,7 +8213,7 @@ version = "1.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ - "cfg-if 0.1.10", + "cfg-if 1.0.0", "rand", "static_assertions", ] diff --git a/Cargo.toml b/Cargo.toml index 23d31e5c05761..eb511e273c6be 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -37,11 +37,11 @@ swc_core = { version = "0.87.16", features = [ testing = { version = "0.35.14" } # Turbo crates -turbopack-binding = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-240117.1" } +turbopack-binding = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-240117.3" } # [TODO]: need to refactor embed_directory! macro usages, as well as resolving turbo_tasks::function, macros.. -turbo-tasks = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-240117.1" } +turbo-tasks = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-240117.3" } # [TODO]: need to refactor embed_directory! macro usage in next-core -turbo-tasks-fs = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-240117.1" } +turbo-tasks-fs = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-240117.3" } # General Deps diff --git a/packages/next-swc/crates/next-core/src/next_client/context.rs b/packages/next-swc/crates/next-core/src/next_client/context.rs index 43e32b2435674..96012a4b0c3b6 100644 --- a/packages/next-swc/crates/next-core/src/next_client/context.rs +++ b/packages/next-swc/crates/next-core/src/next_client/context.rs @@ -18,13 +18,16 @@ use turbopack_binding::{ }, dev::{react_refresh::assert_can_resolve_react_refresh, DevChunkingContext}, ecmascript::{chunk::EcmascriptChunkingContext, TreeShakingMode}, - node::execution_context::ExecutionContext, + node::{ + execution_context::ExecutionContext, + transforms::postcss::{PostCssConfigLocation, PostCssTransformOptions}, + }, turbopack::{ condition::ContextCondition, module_options::{ module_options_context::ModuleOptionsContext, CustomEcmascriptTransformPlugins, - JsxTransformOptions, MdxTransformModuleOptions, PostCssTransformOptions, - TypescriptTransformOptions, WebpackLoadersOptions, + JsxTransformOptions, MdxTransformModuleOptions, TypescriptTransformOptions, + WebpackLoadersOptions, }, resolve_options_context::ResolveOptionsContext, }, @@ -258,23 +261,34 @@ pub async fn get_client_module_options_context( }, )); - let postcss_transform_options = Some(PostCssTransformOptions { + let postcss_transform_options = PostCssTransformOptions { postcss_package: Some(get_postcss_package_mapping(project_path)), + config_location: PostCssConfigLocation::ProjectPathOrLocalPath, ..Default::default() - }); + }; + let postcss_foreign_transform_options = PostCssTransformOptions { + // For node_modules we don't want to resolve postcss config relative to the file being + // compiled, instead it only uses the project root postcss config. + config_location: PostCssConfigLocation::ProjectPath, + ..postcss_transform_options.clone() + }; + let enable_postcss_transform = Some(postcss_transform_options.cell()); + let enable_foreign_postcss_transform = Some(postcss_foreign_transform_options.cell()); let module_options_context = ModuleOptionsContext { preset_env_versions: Some(env), execution_context: Some(execution_context), custom_ecma_transform_plugins, tree_shaking_mode: Some(TreeShakingMode::ReexportsOnly), + enable_postcss_transform, ..Default::default() }; + // node_modules context let foreign_codes_options_context = ModuleOptionsContext { enable_webpack_loaders: foreign_webpack_loaders, + enable_postcss_transform: enable_foreign_postcss_transform, // NOTE(WEB-1016) PostCSS transforms should also apply to foreign code. - enable_postcss_transform: postcss_transform_options.clone(), ..module_options_context.clone() }; @@ -284,7 +298,6 @@ pub async fn get_client_module_options_context( // the modules. enable_jsx: Some(jsx_runtime_options), enable_webpack_loaders, - enable_postcss_transform: postcss_transform_options, enable_typescript_transform: Some(tsconfig), enable_mdx_rs, decorators: Some(decorators_options), diff --git a/packages/next-swc/crates/next-core/src/next_server/context.rs b/packages/next-swc/crates/next-core/src/next_server/context.rs index 9d516c340eaf0..32db4cec20d14 100644 --- a/packages/next-swc/crates/next-core/src/next_server/context.rs +++ b/packages/next-swc/crates/next-core/src/next_server/context.rs @@ -19,13 +19,15 @@ use turbopack_binding::{ }, ecmascript::{references::esm::UrlRewriteBehavior, TransformPlugin, TreeShakingMode}, ecmascript_plugin::transform::directives::client::ClientDirectiveTransformer, - node::execution_context::ExecutionContext, + node::{ + execution_context::ExecutionContext, + transforms::postcss::{PostCssConfigLocation, PostCssTransformOptions}, + }, turbopack::{ condition::ContextCondition, module_options::{ CustomEcmascriptTransformPlugins, JsxTransformOptions, MdxTransformModuleOptions, - ModuleOptionsContext, PostCssTransformOptions, TypescriptTransformOptions, - WebpackLoadersOptions, + ModuleOptionsContext, TypescriptTransformOptions, WebpackLoadersOptions, }, resolve_options_context::ResolveOptionsContext, transition::Transition, @@ -280,10 +282,20 @@ pub async fn get_server_module_options_context( let foreign_code_context_condition = foreign_code_context_condition(next_config, project_path).await?; - let postcss_transform_options = Some(PostCssTransformOptions { + let postcss_transform_options = PostCssTransformOptions { postcss_package: Some(get_postcss_package_mapping(project_path)), + config_location: PostCssConfigLocation::ProjectPathOrLocalPath, ..Default::default() - }); + }; + let postcss_foreign_transform_options = PostCssTransformOptions { + // For node_modules we don't want to resolve postcss config relative to the file + // being compiled, instead it only uses the project root postcss + // config. + config_location: PostCssConfigLocation::ProjectPath, + ..postcss_transform_options.clone() + }; + let enable_postcss_transform = Some(postcss_transform_options.cell()); + let enable_foreign_postcss_transform = Some(postcss_foreign_transform_options.cell()); // A separate webpack rules will be applied to codes matching // foreign_code_context_condition. This allows to import codes from @@ -400,7 +412,7 @@ pub async fn get_server_module_options_context( custom_rules: internal_custom_rules.clone(), enable_webpack_loaders: foreign_webpack_loaders, // NOTE(WEB-1016) PostCSS transforms should also apply to foreign code. - enable_postcss_transform: postcss_transform_options.clone(), + enable_postcss_transform: enable_foreign_postcss_transform, ..module_options_context.clone() }; @@ -414,7 +426,7 @@ pub async fn get_server_module_options_context( ModuleOptionsContext { enable_jsx: Some(jsx_runtime_options), enable_webpack_loaders, - enable_postcss_transform: postcss_transform_options, + enable_postcss_transform, enable_typescript_transform: Some(tsconfig), enable_mdx_rs, decorators: Some(decorators_options), @@ -469,7 +481,7 @@ pub async fn get_server_module_options_context( custom_rules: internal_custom_rules.clone(), enable_webpack_loaders: foreign_webpack_loaders, // NOTE(WEB-1016) PostCSS transforms should also apply to foreign code. - enable_postcss_transform: postcss_transform_options.clone(), + enable_postcss_transform: enable_foreign_postcss_transform, ..module_options_context.clone() }; let internal_module_options_context = ModuleOptionsContext { @@ -491,7 +503,7 @@ pub async fn get_server_module_options_context( ModuleOptionsContext { enable_jsx: Some(jsx_runtime_options), enable_webpack_loaders, - enable_postcss_transform: postcss_transform_options, + enable_postcss_transform, enable_typescript_transform: Some(tsconfig), enable_mdx_rs, decorators: Some(decorators_options), @@ -555,7 +567,7 @@ pub async fn get_server_module_options_context( custom_rules: internal_custom_rules.clone(), enable_webpack_loaders: foreign_webpack_loaders, // NOTE(WEB-1016) PostCSS transforms should also apply to foreign code. - enable_postcss_transform: postcss_transform_options.clone(), + enable_postcss_transform: enable_foreign_postcss_transform, ..module_options_context.clone() }; let internal_module_options_context = ModuleOptionsContext { @@ -566,7 +578,7 @@ pub async fn get_server_module_options_context( ModuleOptionsContext { enable_jsx: Some(jsx_runtime_options), enable_webpack_loaders, - enable_postcss_transform: postcss_transform_options, + enable_postcss_transform, enable_typescript_transform: Some(tsconfig), enable_mdx_rs, decorators: Some(decorators_options), @@ -591,6 +603,13 @@ pub async fn get_server_module_options_context( tree_shaking_mode: Some(TreeShakingMode::ReexportsOnly), ..Default::default() }; + let foreign_code_module_options_context = ModuleOptionsContext { + custom_rules: internal_custom_rules.clone(), + enable_webpack_loaders: foreign_webpack_loaders, + // NOTE(WEB-1016) PostCSS transforms should also apply to foreign code. + enable_postcss_transform: enable_foreign_postcss_transform, + ..module_options_context.clone() + }; let internal_module_options_context = ModuleOptionsContext { enable_typescript_transform: Some(TypescriptTransformOptions::default().cell()), custom_rules: internal_custom_rules, @@ -598,14 +617,14 @@ pub async fn get_server_module_options_context( }; ModuleOptionsContext { enable_webpack_loaders, - enable_postcss_transform: postcss_transform_options, + enable_postcss_transform, enable_typescript_transform: Some(tsconfig), enable_mdx_rs, decorators: Some(decorators_options), rules: vec![ ( foreign_code_context_condition, - module_options_context.clone().cell(), + foreign_code_module_options_context.cell(), ), ( ContextCondition::InPath(next_js_fs().root()), @@ -640,6 +659,13 @@ pub async fn get_server_module_options_context( tree_shaking_mode: Some(TreeShakingMode::ReexportsOnly), ..Default::default() }; + let foreign_code_module_options_context = ModuleOptionsContext { + custom_rules: internal_custom_rules.clone(), + enable_webpack_loaders: foreign_webpack_loaders, + // NOTE(WEB-1016) PostCSS transforms should also apply to foreign code. + enable_postcss_transform: enable_foreign_postcss_transform, + ..module_options_context.clone() + }; let internal_module_options_context = ModuleOptionsContext { enable_typescript_transform: Some(TypescriptTransformOptions::default().cell()), custom_rules: internal_custom_rules, @@ -648,14 +674,14 @@ pub async fn get_server_module_options_context( ModuleOptionsContext { enable_jsx: Some(jsx_runtime_options), enable_webpack_loaders, - enable_postcss_transform: postcss_transform_options, + enable_postcss_transform, enable_typescript_transform: Some(tsconfig), enable_mdx_rs, decorators: Some(decorators_options), rules: vec![ ( foreign_code_context_condition, - module_options_context.clone().cell(), + foreign_code_module_options_context.cell(), ), ( ContextCondition::InPath(next_js_fs().root()), diff --git a/packages/next/package.json b/packages/next/package.json index cb574da217027..c6cefe135cba2 100644 --- a/packages/next/package.json +++ b/packages/next/package.json @@ -194,7 +194,7 @@ "@types/ws": "8.2.0", "@vercel/ncc": "0.34.0", "@vercel/nft": "0.26.2", - "@vercel/turbopack-ecmascript-runtime": "https://gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-240117.1", + "@vercel/turbopack-ecmascript-runtime": "https://gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-240117.3", "acorn": "8.5.0", "amphtml-validator": "1.0.35", "anser": "1.4.9", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dda0bd9268770..f7555a5e590b3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1077,8 +1077,8 @@ importers: specifier: 0.26.2 version: 0.26.2 '@vercel/turbopack-ecmascript-runtime': - specifier: https://gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-240117.1 - version: '@gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-240117.1(react-refresh@0.12.0)(webpack@5.86.0)' + specifier: https://gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-240117.3 + version: '@gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-240117.3(react-refresh@0.12.0)(webpack@5.86.0)' acorn: specifier: 8.5.0 version: 8.5.0 @@ -25649,9 +25649,9 @@ packages: /zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} - '@gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-240117.1(react-refresh@0.12.0)(webpack@5.86.0)': - resolution: {tarball: https://gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-240117.1} - id: '@gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-240117.1' + '@gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-240117.3(react-refresh@0.12.0)(webpack@5.86.0)': + resolution: {tarball: https://gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-240117.3} + id: '@gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-240117.3' name: '@vercel/turbopack-ecmascript-runtime' version: 0.0.0 dependencies: