Skip to content

Commit 71f5f25

Browse files
huozhiijjk
andauthored
Setup require hook in next-server for styled-jsx resolving (vercel#39305)
* Use require hook and alias to resolve styled-jsx * re-export styled-jsx types from compiled * fix lint * add test for styled-jsx css * setup require hook in server * compile import path to styled-jsx/style * revert require hook * add test for server styled-jsx resolving * update test * pre copy styled-jsx assets * fix styled-jsx dts * add npmrc for styled-jsx e2e test * load require hook directly * rm legacy test * fix lint * fix pnpm install error * split require hook * only alias styled-jsx * make styled-jsx resolving statically analyzable * update test Co-authored-by: JJ Kasper <[email protected]>
1 parent b0f5901 commit 71f5f25

File tree

85 files changed

+367
-365
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

85 files changed

+367
-365
lines changed

package.json

-1
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,6 @@
192192
"semver": "7.3.7",
193193
"shell-quote": "1.7.3",
194194
"styled-components": "5.3.3",
195-
"styled-jsx": "link:packages/next/node_modules/styled-jsx",
196195
"styled-jsx-plugin-postcss": "3.0.2",
197196
"tailwindcss": "1.1.3",
198197
"taskr": "1.1.0",

packages/next-swc/crates/core/tests/loader/front/attr-1/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
export default function Foo() {
33
return /*#__PURE__*/ React.createElement("div", {
44
render: function(v) {

packages/next-swc/crates/styled_jsx/src/utils.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ pub fn styled_jsx_import_decl(style_import_name: &str) -> ModuleItem {
310310
})],
311311
src: Str {
312312
span: DUMMY_SP,
313-
value: "next/dist/shared/lib/styled-jsx".into(),
313+
value: "styled-jsx/style".into(),
314314
raw: None,
315315
},
316316
}))

packages/next-swc/crates/styled_jsx/tests/errors/nested-style-tags/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
const Component = ()=><>
33
<header >
44
<Comp >

packages/next-swc/crates/styled_jsx/tests/errors/no-child/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
export default (()=><div >
33

44
<style jsx>

packages/next-swc/crates/styled_jsx/tests/errors/ts-with-css-resolve/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
export default {
33
styles: <_JSXStyle id={"71f03d42ea0ec6"}>{".container.jsx-71f03d42ea0ec6{background:#000;color:white;font-weight:700;height:100px}"}</_JSXStyle>,
44
className: "jsx-71f03d42ea0ec6"

packages/next-swc/crates/styled_jsx/tests/errors/two-children/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
export default (()=><div >
33

44
<style jsx>

packages/next-swc/crates/styled_jsx/tests/errors/wrong-child-type/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
export default (()=><div >
33

44
<style jsx>

packages/next-swc/crates/styled_jsx/tests/errors/wrong-jsx-expression-type/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
export default (()=><div >
33

44
<style jsx>

packages/next-swc/crates/styled_jsx/tests/fixture/attribute-generation-classname-rewriting/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
export default (()=>{
33
const Element = 'div';
44
return <div className={"jsx-abb4c2202db1a207"}>

packages/next-swc/crates/styled_jsx/tests/fixture/attribute-generation-modes/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
import styles from './styles';
33
const styles2 = require('./styles2');
44
// external only

packages/next-swc/crates/styled_jsx/tests/fixture/class/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
export default class {
33
render() {
44
return <div className={"jsx-b2b86d63f35d25ee"}>

packages/next-swc/crates/styled_jsx/tests/fixture/comments/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
export default class {
33
render() {
44
return <div className={"jsx-1952086b0a5ae64c"}>

packages/next-swc/crates/styled_jsx/tests/fixture/component-attribute/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
const Test = ()=><div className={"jsx-a9535d7d5f32c3c4"}>
33

44
<span className={"jsx-a9535d7d5f32c3c4"}>test</span>

packages/next-swc/crates/styled_jsx/tests/fixture/css-selector-after-pseudo/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
function NavigationItem({ active , className , }) {
33
return <span className={"jsx-2342aae4628612c6" + " " + (cn({
44
active

packages/next-swc/crates/styled_jsx/tests/fixture/css-tag-same-file/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
export default (({ children })=><div className={`jsx-${styles.__hash}`}>
33

44
<p className={`jsx-${styles.__hash}`}>{children}</p>

packages/next-swc/crates/styled_jsx/tests/fixture/different-jsx-ids/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
const color = 'red';
33
const otherColor = 'green';
44
const A = ()=><div className={"jsx-551210e97e875d0e"}>

packages/next-swc/crates/styled_jsx/tests/fixture/dynamic-element-class/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
export default class {
33
render() {
44
const Element = 'div';

packages/next-swc/crates/styled_jsx/tests/fixture/dynamic-element-external/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
import styles from './styles2';
33
export default (({ level =1 })=>{
44
const Element = `h${level}`;

packages/next-swc/crates/styled_jsx/tests/fixture/dynamic-element/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
export default (({ level =1 })=>{
33
const Element = `h${level}`;
44
return <Element className={"jsx-fca64cc3f069b519" + " " + "root"}>

packages/next-swc/crates/styled_jsx/tests/fixture/expressions/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
const darken = (c)=>c;
33
const color = 'red';
44
const otherColor = 'green';

packages/next-swc/crates/styled_jsx/tests/fixture/external-nested-scope/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
function test() {
33
({
44
styles: <_JSXStyle id={"abb4c2202db1a207"}>{"div.jsx-abb4c2202db1a207{color:red}"}</_JSXStyle>,

packages/next-swc/crates/styled_jsx/tests/fixture/external-stylesheet-global/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
import styles, { foo as styles3 } from './styles';
33
const styles2 = require('./styles2');
44
export default (()=><div >

packages/next-swc/crates/styled_jsx/tests/fixture/external-stylesheet-multi-line/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
import styles from './styles';
33
export default (()=><div className={`jsx-${styles.__hash}`}>
44

packages/next-swc/crates/styled_jsx/tests/fixture/external-stylesheet/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
import styles from './styles';
33
const styles2 = require('./styles2');
44
import { foo as styles3 } from './styles';

packages/next-swc/crates/styled_jsx/tests/fixture/fragment/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
import React from 'react';
33
export default (()=><>
44

packages/next-swc/crates/styled_jsx/tests/fixture/global-child-selector/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
const Test = ()=><div className={"jsx-5a206f122d1cb32e"}>
33

44
<span className={"jsx-5a206f122d1cb32e"}>test</span>

packages/next-swc/crates/styled_jsx/tests/fixture/global-redundant/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
export default function IndexPage() {
33
return <div className={"jsx-b6abd0684ba81871"}>
44

packages/next-swc/crates/styled_jsx/tests/fixture/global/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
const Test = ()=><div className={"jsx-d47d6adadf14e957"}>
33

44
<_JSXStyle id={"d47d6adadf14e957"}>{"body{color:red}:hover{color:red;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-animation:foo 1s ease-out;-moz-animation:foo 1s ease-out;-o-animation:foo 1s ease-out;animation:foo 1s ease-out}div a{display:none}[data-test]>div{color:red}"}</_JSXStyle>

packages/next-swc/crates/styled_jsx/tests/fixture/issue-30480/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
export default (({ breakPoint })=><div className={_JSXStyle.dynamic([
33
[
44
"5d2a0e645566ce9c",

packages/next-swc/crates/styled_jsx/tests/fixture/issue-30570/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
export default function IndexPage() {
33
return <div className={"jsx-bbdada4ef17d18ef"}>
44

packages/next-swc/crates/styled_jsx/tests/fixture/issue-31562-interpolation-in-mdea/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
export default class {
33
render() {
44
return <div className={_JSXStyle.dynamic([

packages/next-swc/crates/styled_jsx/tests/fixture/mixed-global-scoped/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
const Test = ()=><_JSXStyle id={"94239b6d6b42c9b5"}>{"p{color:red}"}</_JSXStyle>;
33
export default (()=><div className={"jsx-3822e6e1fb9fa41a"}>
44

packages/next-swc/crates/styled_jsx/tests/fixture/multiple-jsx/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
const attrs = {
33
id: 'test'
44
};

packages/next-swc/crates/styled_jsx/tests/fixture/non-styled-jsx-style/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
export default (()=><div className={"jsx-94239b6d6b42c9b5"}>
33

44
<p className={"jsx-94239b6d6b42c9b5"}>woot</p>

packages/next-swc/crates/styled_jsx/tests/fixture/number-after-placeholder/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
import Link from "next/link";
33
export default function IndexPage() {
44
return <div className={"jsx-9a4b3442d519aae9"}>

packages/next-swc/crates/styled_jsx/tests/fixture/one-off-global-selectors/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
export default (()=><div className={"jsx-c7c3a8e231c9215a"}>
33

44
<p className={"jsx-c7c3a8e231c9215a"}>test</p>

packages/next-swc/crates/styled_jsx/tests/fixture/stateless/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
export default (()=><div className={"jsx-94239b6d6b42c9b5"}>
33

44
<p className={"jsx-94239b6d6b42c9b5"}>test</p>

packages/next-swc/crates/styled_jsx/tests/fixture/styles/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
import colors, { size } from './constants';
33
const color = 'red';
44
const bar = new String("div.jsx-aaed0341accea8f{font-size:3em}");

packages/next-swc/crates/styled_jsx/tests/fixture/too-many/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
export const Red = ({ Component ='button' , })=>{
33
return <Component className={_JSXStyle.dynamic([
44
[

packages/next-swc/crates/styled_jsx/tests/fixture/tpl-escape-1/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
export default class {
33
render() {
44
return <div className={"jsx-1f6cef12199c3a8f"}>

packages/next-swc/crates/styled_jsx/tests/fixture/tpl-escape-2/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
export default function Home({ fontFamily }) {
33
return <div className={_JSXStyle.dynamic([
44
[

packages/next-swc/crates/styled_jsx/tests/fixture/tpl-placeholder-1-as-property/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
export default class {
33
render() {
44
return <div className={_JSXStyle.dynamic([

packages/next-swc/crates/styled_jsx/tests/fixture/tpl-placeholder-2-as-part-of-value/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
export default class {
33
render() {
44
return <div className={_JSXStyle.dynamic([

packages/next-swc/crates/styled_jsx/tests/fixture/tpl-placeholder-3-as-value/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
export default class {
33
render() {
44
return <div className={_JSXStyle.dynamic([

packages/next-swc/crates/styled_jsx/tests/fixture/tpl-placeholder-4-as-part-of-value-in-multiple/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
export default class {
33
render() {
44
return <div className={_JSXStyle.dynamic([

packages/next-swc/crates/styled_jsx/tests/fixture/tpl-placeholder-5-values-of-multiple-properties/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
export default class {
33
render() {
44
return <div className={_JSXStyle.dynamic([

packages/next-swc/crates/styled_jsx/tests/fixture/transform-css-complex-selector/output.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/next-swc/crates/styled_jsx/tests/fixture/transform-css-global/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
export default (()=><div className={"jsx-53fd644ab080300c"}>
33

44
<p className={"jsx-53fd644ab080300c"}>test</p>

packages/next-swc/crates/styled_jsx/tests/fixture/transform-css-media-query/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
export default (()=><div className={"jsx-1f7963ae04c6466a"}>
33

44
<p className={"jsx-1f7963ae04c6466a"}>test</p>

packages/next-swc/crates/styled_jsx/tests/fixture/transform-css-normal/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
export default (()=><div className={"jsx-1a19bb4817c105dd"}>
33

44
<p className={"jsx-1a19bb4817c105dd"}>test</p>

packages/next-swc/crates/styled_jsx/tests/fixture/transform-css-nth-1/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
export default (()=><div className={"jsx-938ca197692ef624"}>
33

44
<p className={"jsx-938ca197692ef624"}>test</p>

packages/next-swc/crates/styled_jsx/tests/fixture/transform-css/output.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/next-swc/crates/styled_jsx/tests/fixture/whitespace/output.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
1+
import _JSXStyle from "styled-jsx/style";
22
export default (()=><div className={"jsx-94239b6d6b42c9b5"}>
33

44
<p className={"jsx-94239b6d6b42c9b5"}>test</p>

packages/next/build/babel/preset.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ type StyledJsxBabelOptions =
1616
// Resolve styled-jsx plugins
1717
function styledJsxOptions(options: StyledJsxBabelOptions) {
1818
options = options || {}
19-
options.styleModule = 'next/dist/shared/lib/styled-jsx'
19+
options.styleModule = 'styled-jsx/style'
2020

2121
if (!Array.isArray(options.plugins)) {
2222
return options
@@ -185,8 +185,8 @@ export default (
185185
],
186186
[
187187
isTest && options['styled-jsx'] && options['styled-jsx']['babel-test']
188-
? require('styled-jsx/babel-test')
189-
: require('styled-jsx/babel'),
188+
? require('next/dist/styled-jsx/babel-test')
189+
: require('next/dist/styled-jsx/babel'),
190190
styledJsxOptions(options['styled-jsx']),
191191
],
192192
require('./plugins/amp-attributes'),

packages/next/build/utils.ts

+3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import type { NextConfigComplete } from '../server/config-shared'
22

33
import '../server/node-polyfill-fetch'
4+
import loadRequireHook from '../build/webpack/require-hook'
45
import chalk from 'next/dist/compiled/chalk'
56
import getGzipSize from 'next/dist/compiled/gzip-size'
67
import textTable from 'next/dist/compiled/text-table'
@@ -59,6 +60,8 @@ const fsStat = (file: string) => {
5960
return (fileStats[file] = fileSize(file))
6061
}
6162

63+
loadRequireHook()
64+
6265
export interface PageInfo {
6366
isHybridAmp?: boolean
6467
size: number

packages/next/build/webpack-config.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -685,6 +685,8 @@ export default async function getBaseWebpackConfig(
685685
'react-dom/server$': `${reactDomDir}/server`,
686686
'react-dom/server.browser$': `${reactDomDir}/server.browser`,
687687
'react-dom/client$': `${reactDomDir}/client`,
688+
'styled-jsx/style$': require.resolve(`next/dist/styled-jsx/style`),
689+
'styled-jsx$': require.resolve(`next/dist/styled-jsx`),
688690

689691
...customAppAliases,
690692
...customErrorAlias,
@@ -860,11 +862,11 @@ export default async function getBaseWebpackConfig(
860862
const isEsmRequested = dependencyType === 'esm'
861863

862864
const isLocalCallback = (localRes: string) => {
863-
// Makes sure dist/shared and dist/server are not bundled
865+
// Makes sure dist/styled-jsx, dist/shared and dist/server are not bundled
864866
// we need to process shared `router/router` and `dynamic`,
865867
// so that the DefinePlugin can inject process.env values
866868
const isNextExternal =
867-
/next[/\\]dist[/\\](shared|server)[/\\](?!lib[/\\](router[/\\]router|dynamic))/.test(
869+
/next[/\\]dist[/\\](styled-jsx|shared|server)[/\\](?!lib[/\\](router[/\\]router|dynamic))/.test(
868870
localRes
869871
)
870872

0 commit comments

Comments
 (0)