From f0a883c37c6d1fe485989a104dd9fea45fc9b115 Mon Sep 17 00:00:00 2001 From: Jiachi Liu Date: Fri, 12 Aug 2022 01:56:42 +0200 Subject: [PATCH 1/5] Remove precopied styled-jsx --- packages/next/build/babel/preset.ts | 4 ++-- packages/next/build/webpack-config.ts | 4 ++-- packages/next/build/webpack/require-hook.ts | 4 ++-- packages/next/server/render.tsx | 2 +- packages/next/taskfile.js | 12 +----------- packages/next/types/misc.d.ts | 4 ---- pnpm-lock.yaml | 1 + 7 files changed, 9 insertions(+), 22 deletions(-) diff --git a/packages/next/build/babel/preset.ts b/packages/next/build/babel/preset.ts index a0fb85846dab..5ea2a647a5e9 100644 --- a/packages/next/build/babel/preset.ts +++ b/packages/next/build/babel/preset.ts @@ -185,8 +185,8 @@ export default ( ], [ isTest && options['styled-jsx'] && options['styled-jsx']['babel-test'] - ? require('next/dist/styled-jsx/babel-test') - : require('next/dist/styled-jsx/babel'), + ? require('styled-jsx/babel-test') + : require('styled-jsx/babel'), styledJsxOptions(options['styled-jsx']), ], require('./plugins/amp-attributes'), diff --git a/packages/next/build/webpack-config.ts b/packages/next/build/webpack-config.ts index 964b61f3587a..c099e19b68ff 100644 --- a/packages/next/build/webpack-config.ts +++ b/packages/next/build/webpack-config.ts @@ -686,8 +686,8 @@ export default async function getBaseWebpackConfig( 'react-dom/server$': `${reactDomDir}/server`, 'react-dom/server.browser$': `${reactDomDir}/server.browser`, 'react-dom/client$': `${reactDomDir}/client`, - 'styled-jsx/style$': require.resolve(`next/dist/styled-jsx/style`), - 'styled-jsx$': require.resolve(`next/dist/styled-jsx`), + 'styled-jsx/style$': require.resolve(`styled-jsx/style`), + 'styled-jsx$': require.resolve(`styled-jsx`), ...customAppAliases, ...customErrorAlias, diff --git a/packages/next/build/webpack/require-hook.ts b/packages/next/build/webpack/require-hook.ts index 74c2aa128de3..0c0d6890f78b 100644 --- a/packages/next/build/webpack/require-hook.ts +++ b/packages/next/build/webpack/require-hook.ts @@ -7,8 +7,8 @@ export default function loadRequireHook(aliases: [string, string][] = []) { [ ...aliases, // Use `require.resolve` explicitly to make them statically analyzable - ['styled-jsx', require.resolve('next/dist/styled-jsx')], - ['styled-jsx/style', require.resolve('next/dist/styled-jsx/style')], + ['styled-jsx', require.resolve('styled-jsx')], + ['styled-jsx/style', require.resolve('styled-jsx/style')], ].map(([request, replacement]) => [request, replacement]) ) diff --git a/packages/next/server/render.tsx b/packages/next/server/render.tsx index 093db7c9fa88..b26ebdd435f9 100644 --- a/packages/next/server/render.tsx +++ b/packages/next/server/render.tsx @@ -28,7 +28,7 @@ import type { UnwrapPromise } from '../lib/coalesced-function' import type { ReactReadableStream } from './node-web-streams-helper' import React from 'react' -import { StyleRegistry, createStyleRegistry } from 'next/dist/styled-jsx' +import { StyleRegistry, createStyleRegistry } from 'styled-jsx' import { GSP_NO_RETURNED_VALUE, GSSP_COMPONENT_MEMBER_ERROR, diff --git a/packages/next/taskfile.js b/packages/next/taskfile.js index 88dde0b576a2..005637e4f018 100644 --- a/packages/next/taskfile.js +++ b/packages/next/taskfile.js @@ -44,14 +44,11 @@ export async function copy_regenerator_runtime(task, opts) { // eslint-disable-next-line camelcase export async function copy_styled_jsx_assets(task, opts) { - // we copy the styled-jsx assets and types so that we can reference them + // we copy the styled-jsx types so that we can reference them // in the next-env.d.ts file so it doesn't matter if the styled-jsx // package is hoisted out of Next.js' node_modules or not const styledJsxPath = dirname(require.resolve('styled-jsx/package.json')) const typeFiles = glob.sync('*.d.ts', { cwd: styledJsxPath }) - const jsFiles = glob.sync('**/{index,style,babel,babel-test}.js', { - cwd: styledJsxPath, - }) const outputDir = join(__dirname, 'dist/styled-jsx') // Separate type files into different folders to avoid conflicts between // dev dep `styled-jsx` and `next/dist/styled-jsx` for duplicated declare modules @@ -62,13 +59,6 @@ export async function copy_styled_jsx_assets(task, opts) { const content = await fs.readFile(join(styledJsxPath, file), 'utf8') await fs.writeFile(join(typesDir, file), content) } - - for (const file of jsFiles) { - const content = await fs.readFile(join(styledJsxPath, file), 'utf8') - const distFile = join(outputDir, file) - await fs.ensureDir(dirname(distFile)) - await fs.writeFile(distFile, content) - } } const externals = { diff --git a/packages/next/types/misc.d.ts b/packages/next/types/misc.d.ts index 7571c94bfe57..3b80a2eaf1eb 100644 --- a/packages/next/types/misc.d.ts +++ b/packages/next/types/misc.d.ts @@ -284,10 +284,6 @@ declare module 'next/dist/compiled/postcss-scss' { import m from 'postcss-scss' export = m } -declare module 'next/dist/styled-jsx' { - import m from 'styled-jsx' - export = m -} declare module 'next/dist/compiled/text-table' { function textTable( diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f1cc89026b21..0978e105c44f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10454,6 +10454,7 @@ packages: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: eslint: 7.32.0 + dev: false /eslint-plugin-react/7.23.2_eslint@7.24.0: resolution: {integrity: sha512-AfjgFQB+nYszudkxRkTFu0UR1zEQig0ArVMPloKhxwlwkzaw/fBiH0QWcBBhZONlXqQC51+nfqFrkn4EzHcGBw==} From bc149ca833ac668eb298e2750cc32713834dbb39 Mon Sep 17 00:00:00 2001 From: JJ Kasper Date: Thu, 11 Aug 2022 20:06:00 -0500 Subject: [PATCH 2/5] re-add styled-jsx stub --- .../next-swc/crates/core/tests/loader/front/attr-1/output.js | 2 +- packages/next-swc/crates/styled_jsx/src/utils.rs | 2 +- .../crates/styled_jsx/tests/errors/nested-style-tags/output.js | 2 +- .../next-swc/crates/styled_jsx/tests/errors/no-child/output.js | 2 +- .../styled_jsx/tests/errors/ts-with-css-resolve/output.js | 2 +- .../crates/styled_jsx/tests/errors/two-children/output.js | 2 +- .../crates/styled_jsx/tests/errors/wrong-child-type/output.js | 2 +- .../styled_jsx/tests/errors/wrong-jsx-expression-type/output.js | 2 +- .../fixture/attribute-generation-classname-rewriting/output.js | 2 +- .../tests/fixture/attribute-generation-modes/output.js | 2 +- .../next-swc/crates/styled_jsx/tests/fixture/class/output.js | 2 +- .../next-swc/crates/styled_jsx/tests/fixture/comments/output.js | 2 +- .../styled_jsx/tests/fixture/component-attribute/output.js | 2 +- .../tests/fixture/css-selector-after-pseudo/output.js | 2 +- .../crates/styled_jsx/tests/fixture/css-tag-same-file/output.js | 2 +- .../crates/styled_jsx/tests/fixture/different-jsx-ids/output.js | 2 +- .../styled_jsx/tests/fixture/dynamic-element-class/output.js | 2 +- .../styled_jsx/tests/fixture/dynamic-element-external/output.js | 2 +- .../crates/styled_jsx/tests/fixture/dynamic-element/output.js | 2 +- .../crates/styled_jsx/tests/fixture/expressions/output.js | 2 +- .../styled_jsx/tests/fixture/external-nested-scope/output.js | 2 +- .../tests/fixture/external-stylesheet-global/output.js | 2 +- .../tests/fixture/external-stylesheet-multi-line/output.js | 2 +- .../styled_jsx/tests/fixture/external-stylesheet/output.js | 2 +- .../next-swc/crates/styled_jsx/tests/fixture/fragment/output.js | 2 +- .../styled_jsx/tests/fixture/global-child-selector/output.js | 2 +- .../crates/styled_jsx/tests/fixture/global-redundant/output.js | 2 +- .../next-swc/crates/styled_jsx/tests/fixture/global/output.js | 2 +- .../crates/styled_jsx/tests/fixture/issue-30480/output.js | 2 +- .../crates/styled_jsx/tests/fixture/issue-30570/output.js | 2 +- .../tests/fixture/issue-31562-interpolation-in-mdea/output.js | 2 +- .../styled_jsx/tests/fixture/mixed-global-scoped/output.js | 2 +- .../crates/styled_jsx/tests/fixture/multiple-jsx/output.js | 2 +- .../styled_jsx/tests/fixture/non-styled-jsx-style/output.js | 2 +- .../styled_jsx/tests/fixture/number-after-placeholder/output.js | 2 +- .../styled_jsx/tests/fixture/one-off-global-selectors/output.js | 2 +- .../crates/styled_jsx/tests/fixture/stateless/output.js | 2 +- .../next-swc/crates/styled_jsx/tests/fixture/styles/output.js | 2 +- .../next-swc/crates/styled_jsx/tests/fixture/too-many/output.js | 2 +- .../crates/styled_jsx/tests/fixture/tpl-escape-1/output.js | 2 +- .../crates/styled_jsx/tests/fixture/tpl-escape-2/output.js | 2 +- .../tests/fixture/tpl-placeholder-1-as-property/output.js | 2 +- .../tests/fixture/tpl-placeholder-2-as-part-of-value/output.js | 2 +- .../tests/fixture/tpl-placeholder-3-as-value/output.js | 2 +- .../tpl-placeholder-4-as-part-of-value-in-multiple/output.js | 2 +- .../tpl-placeholder-5-values-of-multiple-properties/output.js | 2 +- .../tests/fixture/transform-css-complex-selector/output.js | 2 +- .../styled_jsx/tests/fixture/transform-css-global/output.js | 2 +- .../tests/fixture/transform-css-media-query/output.js | 2 +- .../styled_jsx/tests/fixture/transform-css-normal/output.js | 2 +- .../styled_jsx/tests/fixture/transform-css-nth-1/output.js | 2 +- .../crates/styled_jsx/tests/fixture/transform-css/output.js | 2 +- .../crates/styled_jsx/tests/fixture/whitespace/output.js | 2 +- packages/next/build/babel/preset.ts | 2 +- packages/next/shared/lib/styled-jsx.d.ts | 1 + packages/next/shared/lib/styled-jsx.js | 1 + 56 files changed, 56 insertions(+), 54 deletions(-) create mode 100644 packages/next/shared/lib/styled-jsx.d.ts create mode 100644 packages/next/shared/lib/styled-jsx.js diff --git a/packages/next-swc/crates/core/tests/loader/front/attr-1/output.js b/packages/next-swc/crates/core/tests/loader/front/attr-1/output.js index ed60ad648aa2..f82bfb4e4a00 100644 --- a/packages/next-swc/crates/core/tests/loader/front/attr-1/output.js +++ b/packages/next-swc/crates/core/tests/loader/front/attr-1/output.js @@ -1,4 +1,4 @@ -import _JSXStyle from "styled-jsx/style"; +import _JSXStyle from "next/dist/shared/lib/styled-jsx"; export default function Foo() { return /*#__PURE__*/ React.createElement("div", { render: function(v) { diff --git a/packages/next-swc/crates/styled_jsx/src/utils.rs b/packages/next-swc/crates/styled_jsx/src/utils.rs index bc720b16af38..678762e3c4fa 100644 --- a/packages/next-swc/crates/styled_jsx/src/utils.rs +++ b/packages/next-swc/crates/styled_jsx/src/utils.rs @@ -310,7 +310,7 @@ pub fn styled_jsx_import_decl(style_import_name: &str) -> ModuleItem { })], src: Str { span: DUMMY_SP, - value: "styled-jsx/style".into(), + value: "next/dist/shared/lib/styled-jsx".into(), raw: None, }, })) diff --git a/packages/next-swc/crates/styled_jsx/tests/errors/nested-style-tags/output.js b/packages/next-swc/crates/styled_jsx/tests/errors/nested-style-tags/output.js index 6a801091839c..38d68136f2d8 100644 --- a/packages/next-swc/crates/styled_jsx/tests/errors/nested-style-tags/output.js +++ b/packages/next-swc/crates/styled_jsx/tests/errors/nested-style-tags/output.js @@ -1,4 +1,4 @@ -import _JSXStyle from "styled-jsx/style"; +import _JSXStyle from "next/dist/shared/lib/styled-jsx"; const Component = ()=><>
diff --git a/packages/next-swc/crates/styled_jsx/tests/errors/no-child/output.js b/packages/next-swc/crates/styled_jsx/tests/errors/no-child/output.js index 90fb7d27831c..908b640b076a 100644 --- a/packages/next-swc/crates/styled_jsx/tests/errors/no-child/output.js +++ b/packages/next-swc/crates/styled_jsx/tests/errors/no-child/output.js @@ -1,4 +1,4 @@ -import _JSXStyle from "styled-jsx/style"; +import _JSXStyle from "next/dist/shared/lib/styled-jsx"; export default (()=>