Skip to content

Commit 7a09f88

Browse files
huozhitimneutkens
andauthored
Reexports styled-jsx JSXStyle in nextjs (#36585)
When using pnpm / yarnPnP to install next.js, styled-jsx as dependency is not hoisted in the top level node_modules, it will fail when nodejs is trying to resolve `styled-jsx/style` from project directory. Re-export `styled-jsx/style` in next.js and let swc/babel plugin compile the import path it to `next/dist/shared/lib/styled-jsx` Resolves #10149 Closes #21320 Closes #9325 Co-authored-by: Tim Neutkens <[email protected]>
1 parent 948128a commit 7a09f88

File tree

57 files changed

+101
-57
lines changed

Some content is hidden

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

57 files changed

+101
-57
lines changed

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

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

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

Lines changed: 1 addition & 1 deletion
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: "styled-jsx/style".into(),
313+
value: "next/dist/shared/lib/styled-jsx".into(),
314314
raw: None,
315315
},
316316
}))

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

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

44
<style jsx>

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "styled-jsx/style";
1+
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
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

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

44
<style jsx>

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

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

44
<style jsx>

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

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

44
<style jsx>

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import _JSXStyle from "styled-jsx/style";
1+
import _JSXStyle from "next/dist/shared/lib/styled-jsx";
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

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

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

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

0 commit comments

Comments
 (0)