From e3e6cb527c679e1f50df6b36d040e76c3562cad3 Mon Sep 17 00:00:00 2001 From: neverland Date: Wed, 25 Sep 2024 16:42:19 +0800 Subject: [PATCH] Revert "feat: allow to import TS files with js extension (#3536)" (#3559) --- .../typescript/extension-alias/index.test.ts | 10 ------- .../typescript/extension-alias/src/bar.tsx | 3 -- .../typescript/extension-alias/src/foo.ts | 1 - .../typescript/extension-alias/src/index.ts | 12 -------- .../typescript/extension-alias/tsconfig.json | 12 -------- .../typescript/{const-enum => }/index.test.ts | 0 .../typescript/{const-enum => }/src/foo.ts | 0 .../typescript/{const-enum => }/src/index.ts | 0 .../typescript/{const-enum => }/tsconfig.json | 0 .../tests/__snapshots__/default.test.ts.snap | 28 ------------------- packages/core/package.json | 2 +- packages/core/src/plugins/resolve.ts | 17 ++--------- .../tests/__snapshots__/default.test.ts.snap | 28 ------------------- pnpm-lock.yaml | 10 +++---- 14 files changed, 8 insertions(+), 115 deletions(-) delete mode 100644 e2e/cases/typescript/extension-alias/index.test.ts delete mode 100644 e2e/cases/typescript/extension-alias/src/bar.tsx delete mode 100644 e2e/cases/typescript/extension-alias/src/foo.ts delete mode 100644 e2e/cases/typescript/extension-alias/src/index.ts delete mode 100644 e2e/cases/typescript/extension-alias/tsconfig.json rename e2e/cases/typescript/{const-enum => }/index.test.ts (100%) rename e2e/cases/typescript/{const-enum => }/src/foo.ts (100%) rename e2e/cases/typescript/{const-enum => }/src/index.ts (100%) rename e2e/cases/typescript/{const-enum => }/tsconfig.json (100%) diff --git a/e2e/cases/typescript/extension-alias/index.test.ts b/e2e/cases/typescript/extension-alias/index.test.ts deleted file mode 100644 index 23e8ff6c85..0000000000 --- a/e2e/cases/typescript/extension-alias/index.test.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { build } from '@e2e/helper'; -import { expect, test } from '@playwright/test'; - -test('should allow to import TS files with .js extension', async ({ page }) => { - await build({ - cwd: __dirname, - page, - }); - expect(await page.evaluate(() => window.test)).toBe(1); -}); diff --git a/e2e/cases/typescript/extension-alias/src/bar.tsx b/e2e/cases/typescript/extension-alias/src/bar.tsx deleted file mode 100644 index 36903f1a8f..0000000000 --- a/e2e/cases/typescript/extension-alias/src/bar.tsx +++ /dev/null @@ -1,3 +0,0 @@ -export const bar = () => { - return
bar
; -}; diff --git a/e2e/cases/typescript/extension-alias/src/foo.ts b/e2e/cases/typescript/extension-alias/src/foo.ts deleted file mode 100644 index bb1843d113..0000000000 --- a/e2e/cases/typescript/extension-alias/src/foo.ts +++ /dev/null @@ -1 +0,0 @@ -export const foo = 1; diff --git a/e2e/cases/typescript/extension-alias/src/index.ts b/e2e/cases/typescript/extension-alias/src/index.ts deleted file mode 100644 index 80accd5394..0000000000 --- a/e2e/cases/typescript/extension-alias/src/index.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { bar } from './bar.js'; -import { foo } from './foo.js'; - -declare global { - interface Window { - test: number; - } -} - -window.test = foo; - -console.log(bar); diff --git a/e2e/cases/typescript/extension-alias/tsconfig.json b/e2e/cases/typescript/extension-alias/tsconfig.json deleted file mode 100644 index 899dd0e3e3..0000000000 --- a/e2e/cases/typescript/extension-alias/tsconfig.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "extends": "@rsbuild/config/tsconfig", - "compilerOptions": { - "jsx": "react-jsx", - "baseUrl": "./", - "outDir": "./dist", - "paths": { - "@/*": ["./src/*"] - } - }, - "include": ["src", "*.test.ts"] -} diff --git a/e2e/cases/typescript/const-enum/index.test.ts b/e2e/cases/typescript/index.test.ts similarity index 100% rename from e2e/cases/typescript/const-enum/index.test.ts rename to e2e/cases/typescript/index.test.ts diff --git a/e2e/cases/typescript/const-enum/src/foo.ts b/e2e/cases/typescript/src/foo.ts similarity index 100% rename from e2e/cases/typescript/const-enum/src/foo.ts rename to e2e/cases/typescript/src/foo.ts diff --git a/e2e/cases/typescript/const-enum/src/index.ts b/e2e/cases/typescript/src/index.ts similarity index 100% rename from e2e/cases/typescript/const-enum/src/index.ts rename to e2e/cases/typescript/src/index.ts diff --git a/e2e/cases/typescript/const-enum/tsconfig.json b/e2e/cases/typescript/tsconfig.json similarity index 100% rename from e2e/cases/typescript/const-enum/tsconfig.json rename to e2e/cases/typescript/tsconfig.json diff --git a/packages/compat/webpack/tests/__snapshots__/default.test.ts.snap b/packages/compat/webpack/tests/__snapshots__/default.test.ts.snap index 1589479166..3ff421417a 100644 --- a/packages/compat/webpack/tests/__snapshots__/default.test.ts.snap +++ b/packages/compat/webpack/tests/__snapshots__/default.test.ts.snap @@ -325,13 +325,6 @@ exports[`applyDefaultPlugins > should apply default plugins correctly 1`] = ` }, ], "resolve": { - "extensionAlias": { - ".js": [ - ".ts", - ".tsx", - ".js", - ], - }, "extensions": [ ".ts", ".tsx", @@ -690,13 +683,6 @@ exports[`applyDefaultPlugins > should apply default plugins correctly when produ }, ], "resolve": { - "extensionAlias": { - ".js": [ - ".ts", - ".tsx", - ".js", - ], - }, "extensions": [ ".ts", ".tsx", @@ -1004,13 +990,6 @@ exports[`applyDefaultPlugins > should apply default plugins correctly when targe }, ], "resolve": { - "extensionAlias": { - ".js": [ - ".ts", - ".tsx", - ".js", - ], - }, "extensions": [ ".ts", ".tsx", @@ -1301,13 +1280,6 @@ exports[`applyDefaultPlugins > should apply default plugins correctly when targe }, ], "resolve": { - "extensionAlias": { - ".js": [ - ".ts", - ".tsx", - ".js", - ], - }, "extensions": [ ".ts", ".tsx", diff --git a/packages/core/package.json b/packages/core/package.json index 8e8fdd1945..8e81acb6a1 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -90,7 +90,7 @@ "reduce-configs": "^1.0.0", "rsbuild-dev-middleware": "0.1.1", "rslog": "^1.2.3", - "rspack-chain": "^1.0.3", + "rspack-chain": "^1.0.1", "rspack-manifest-plugin": "5.0.1", "sirv": "^2.0.4", "style-loader": "3.3.4", diff --git a/packages/core/src/plugins/resolve.ts b/packages/core/src/plugins/resolve.ts index 668c22096c..b7fbbffea5 100644 --- a/packages/core/src/plugins/resolve.ts +++ b/packages/core/src/plugins/resolve.ts @@ -24,13 +24,7 @@ function applyFullySpecified({ .resolve.set('fullySpecified', false); } -function applyExtensions({ - chain, - tsconfigPath, -}: { - chain: RspackChain; - tsconfigPath: string | undefined; -}) { +function applyExtensions({ chain }: { chain: RspackChain }) { const extensions = [ // most projects are using TypeScript, resolve .ts(x) files first to reduce resolve time. '.ts', @@ -42,13 +36,6 @@ function applyExtensions({ ]; chain.resolve.extensions.merge(extensions); - - if (tsconfigPath) { - // TypeScript allows importing TS files with `.js` extension - chain.resolve.extensionAlias.merge({ - '.js': ['.ts', '.tsx', '.js'], - }); - } } function applyAlias({ @@ -103,7 +90,7 @@ export const pluginResolve = (): RsbuildPlugin => ({ handler: (chain, { environment, CHAIN_ID }) => { const { config, tsconfigPath } = environment; - applyExtensions({ chain, tsconfigPath }); + applyExtensions({ chain }); applyAlias({ chain, diff --git a/packages/core/tests/__snapshots__/default.test.ts.snap b/packages/core/tests/__snapshots__/default.test.ts.snap index 5fc3481d82..b7658bc1fa 100644 --- a/packages/core/tests/__snapshots__/default.test.ts.snap +++ b/packages/core/tests/__snapshots__/default.test.ts.snap @@ -373,13 +373,6 @@ exports[`applyDefaultPlugins > should apply default plugins correctly 1`] = ` "alias": { "@swc/helpers": "/node_modules//@swc/helpers", }, - "extensionAlias": { - ".js": [ - ".ts", - ".tsx", - ".js", - ], - }, "extensions": [ ".ts", ".tsx", @@ -809,13 +802,6 @@ exports[`applyDefaultPlugins > should apply default plugins correctly when prod "alias": { "@swc/helpers": "/node_modules//@swc/helpers", }, - "extensionAlias": { - ".js": [ - ".ts", - ".tsx", - ".js", - ], - }, "extensions": [ ".ts", ".tsx", @@ -1143,13 +1129,6 @@ exports[`applyDefaultPlugins > should apply default plugins correctly when targe "alias": { "@swc/helpers": "/node_modules//@swc/helpers", }, - "extensionAlias": { - ".js": [ - ".ts", - ".tsx", - ".js", - ], - }, "extensions": [ ".ts", ".tsx", @@ -1550,13 +1529,6 @@ exports[`tools.rspack > should match snapshot 1`] = ` "alias": { "@swc/helpers": "/node_modules//@swc/helpers", }, - "extensionAlias": { - ".js": [ - ".ts", - ".tsx", - ".js", - ], - }, "extensions": [ ".ts", ".tsx", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d945f176c6..33f91684c5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -709,8 +709,8 @@ importers: specifier: ^1.2.3 version: 1.2.3 rspack-chain: - specifier: ^1.0.3 - version: 1.0.3 + specifier: ^1.0.1 + version: 1.0.1 rspack-manifest-plugin: specifier: 5.0.1 version: 5.0.1(@rspack/core@1.0.7(@swc/helpers@0.5.13)) @@ -6189,8 +6189,8 @@ packages: resolution: {integrity: sha512-antALPJaKBRPBU1X2q9t085K4htWDOOv/K1qhTUk7h0l1ePU/KbDqKJn19eKP0dk7PqMioeA0+fu3gyPXCsXxQ==} engines: {node: '>=14.17.6'} - rspack-chain@1.0.3: - resolution: {integrity: sha512-U6PAlAClpX0ZYliwi97p0FyJAzdnG2XPIqPE1LR3jTTXlGKbctici1jsjG6c9mG9x7l+3TuKy2QWLIEHljxCtg==} + rspack-chain@1.0.1: + resolution: {integrity: sha512-WuKu6d7Vj+rGz6gHnBMha41qNTEleXjKyJhwUjnfiJ3Hxksn3hKl9zPdXUopYTBIJAbpKfDgIRewp/aGca1YeQ==} rspack-manifest-plugin@5.0.1: resolution: {integrity: sha512-K2g7kcOdj+cHTi+xvzwdLZ4rdL1nnphJhs9P8VH5sVcoQd1U/FxpNXnEm5ARxhE7qZO0yfqaL74aXwcQH0T0Ig==} @@ -13343,7 +13343,7 @@ snapshots: rslog@1.2.3: {} - rspack-chain@1.0.3: + rspack-chain@1.0.1: dependencies: deepmerge: 4.3.1 javascript-stringify: 2.1.0