diff --git a/e2e/cases/source-map/index.test.ts b/e2e/cases/output/source-map/index.test.ts similarity index 100% rename from e2e/cases/source-map/index.test.ts rename to e2e/cases/output/source-map/index.test.ts diff --git a/e2e/cases/source-map/package.json b/e2e/cases/output/source-map/package.json similarity index 57% rename from e2e/cases/source-map/package.json rename to e2e/cases/output/source-map/package.json index f590059dac..339f72d195 100644 --- a/e2e/cases/source-map/package.json +++ b/e2e/cases/output/source-map/package.json @@ -3,8 +3,6 @@ "name": "@e2e/webpack-source-map", "version": "1.0.0", "dependencies": { - "source-map": "0.7.4", - "react": "^19.0.0", - "react-dom": "^19.0.0" + "source-map": "0.7.4" } } diff --git a/e2e/cases/source-map/rsbuild.config.ts b/e2e/cases/output/source-map/rsbuild.config.ts similarity index 100% rename from e2e/cases/source-map/rsbuild.config.ts rename to e2e/cases/output/source-map/rsbuild.config.ts diff --git a/e2e/cases/source-map/src/App.jsx b/e2e/cases/output/source-map/src/App.jsx similarity index 100% rename from e2e/cases/source-map/src/App.jsx rename to e2e/cases/output/source-map/src/App.jsx diff --git a/e2e/cases/source-map/src/index.css b/e2e/cases/output/source-map/src/index.css similarity index 100% rename from e2e/cases/source-map/src/index.css rename to e2e/cases/output/source-map/src/index.css diff --git a/e2e/cases/source-map/src/index.js b/e2e/cases/output/source-map/src/index.js similarity index 100% rename from e2e/cases/source-map/src/index.js rename to e2e/cases/output/source-map/src/index.js diff --git a/e2e/cases/preview/basic/src/index.js b/e2e/cases/server/preview/basic/src/index.js similarity index 100% rename from e2e/cases/preview/basic/src/index.js rename to e2e/cases/server/preview/basic/src/index.js diff --git a/e2e/cases/preview/index.test.ts b/e2e/cases/server/preview/index.test.ts similarity index 100% rename from e2e/cases/preview/index.test.ts rename to e2e/cases/server/preview/index.test.ts diff --git a/e2e/cases/prod-server/index.test.ts b/e2e/cases/server/prod-server/index.test.ts similarity index 100% rename from e2e/cases/prod-server/index.test.ts rename to e2e/cases/server/prod-server/index.test.ts diff --git a/e2e/cases/prod-server/src/index.ts b/e2e/cases/server/prod-server/src/index.ts similarity index 100% rename from e2e/cases/prod-server/src/index.ts rename to e2e/cases/server/prod-server/src/index.ts diff --git a/e2e/cases/source/basic/src/common/test.js b/e2e/cases/source/basic/src/common/test.js deleted file mode 100644 index ad7e6a7bdc..0000000000 --- a/e2e/cases/source/basic/src/common/test.js +++ /dev/null @@ -1 +0,0 @@ -export const test = 1; diff --git a/e2e/cases/source/basic/src/index.js b/e2e/cases/source/basic/src/index.js deleted file mode 100644 index 25a4303074..0000000000 --- a/e2e/cases/source/basic/src/index.js +++ /dev/null @@ -1,9 +0,0 @@ -import { test } from '@common/test'; - -const testEl = document.createElement('div'); -testEl.id = 'test'; -testEl.innerHTML = `Hello Rsbuild! ${test}`; - -document.body.appendChild(testEl); - -window.aa = 2; diff --git a/e2e/cases/source/define/index.test.ts b/e2e/cases/source/define/index.test.ts new file mode 100644 index 0000000000..d5e89e6a8a --- /dev/null +++ b/e2e/cases/source/define/index.test.ts @@ -0,0 +1,34 @@ +import { build, dev, gotoPage } from '@e2e/helper'; +import { expect, test } from '@playwright/test'; + +test('should allow to define global variables in development', async ({ + page, +}) => { + const rsbuild = await dev({ + cwd: __dirname, + page, + }); + + await gotoPage(page, rsbuild); + + const testEl = page.locator('#test-el'); + await expect(testEl).toHaveText('aaaaa'); + + await rsbuild.close(); +}); + +test('should allow to define global variables in production build', async ({ + page, +}) => { + const rsbuild = await build({ + cwd: __dirname, + page, + }); + + await gotoPage(page, rsbuild); + + const testEl = page.locator('#test-el'); + await expect(testEl).toHaveText('aaaaa'); + + await rsbuild.close(); +}); diff --git a/e2e/cases/source/define/rsbuild.config.ts b/e2e/cases/source/define/rsbuild.config.ts new file mode 100644 index 0000000000..78bfde9760 --- /dev/null +++ b/e2e/cases/source/define/rsbuild.config.ts @@ -0,0 +1,9 @@ +import { defineConfig } from '@rsbuild/core'; + +export default defineConfig({ + source: { + define: { + ENABLE_TEST: JSON.stringify(true), + }, + }, +}); diff --git a/e2e/cases/source/global-vars/src/index.ts b/e2e/cases/source/define/src/index.ts similarity index 100% rename from e2e/cases/source/global-vars/src/index.ts rename to e2e/cases/source/define/src/index.ts diff --git a/e2e/cases/source/global-vars/src/types.d.ts b/e2e/cases/source/define/src/types.d.ts similarity index 100% rename from e2e/cases/source/global-vars/src/types.d.ts rename to e2e/cases/source/define/src/types.d.ts diff --git a/e2e/cases/source/global-vars/tsconfig.json b/e2e/cases/source/define/tsconfig.json similarity index 100% rename from e2e/cases/source/global-vars/tsconfig.json rename to e2e/cases/source/define/tsconfig.json diff --git a/e2e/cases/source/pre-entry/index.test.ts b/e2e/cases/source/pre-entry/index.test.ts new file mode 100644 index 0000000000..f5ec04a536 --- /dev/null +++ b/e2e/cases/source/pre-entry/index.test.ts @@ -0,0 +1,28 @@ +import { build, dev } from '@e2e/helper'; +import { expect, test } from '@playwright/test'; + +test('should allow to configure pre-entry in development', async ({ page }) => { + const rsbuild = await dev({ + cwd: __dirname, + page, + }); + + await expect(page.innerHTML('#test-el')).resolves.toBe('aaaaa'); + await expect(page.evaluate('window.aa')).resolves.toBe(2); + + await rsbuild.close(); +}); + +test('should allow to configure pre-entry in production build', async ({ + page, +}) => { + const rsbuild = await build({ + cwd: __dirname, + page, + }); + + await expect(page.innerHTML('#test-el')).resolves.toBe('aaaaa'); + await expect(page.evaluate('window.aa')).resolves.toBe(2); + + await rsbuild.close(); +}); diff --git a/e2e/cases/source/pre-entry/rsbuild.config.ts b/e2e/cases/source/pre-entry/rsbuild.config.ts new file mode 100644 index 0000000000..701d7a19fd --- /dev/null +++ b/e2e/cases/source/pre-entry/rsbuild.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from '@rsbuild/core'; + +export default defineConfig({ + source: { + preEntry: ['./src/pre.js'], + }, +}); diff --git a/e2e/cases/source/pre-entry/src/index.js b/e2e/cases/source/pre-entry/src/index.js new file mode 100644 index 0000000000..7a13d3d1c1 --- /dev/null +++ b/e2e/cases/source/pre-entry/src/index.js @@ -0,0 +1 @@ +window.aa = 2; diff --git a/e2e/cases/source/basic/src/pre.js b/e2e/cases/source/pre-entry/src/pre.js similarity index 100% rename from e2e/cases/source/basic/src/pre.js rename to e2e/cases/source/pre-entry/src/pre.js diff --git a/e2e/cases/source/source.test.ts b/e2e/cases/source/source.test.ts deleted file mode 100644 index d454beb79a..0000000000 --- a/e2e/cases/source/source.test.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { join } from 'node:path'; -import { build, gotoPage } from '@e2e/helper'; -import { expect, test } from '@playwright/test'; - -const fixtures = __dirname; - -test.describe('source configure multi', () => { - let rsbuild: Awaited>; - - test.beforeAll(async () => { - rsbuild = await build({ - cwd: join(fixtures, 'basic'), - runServer: true, - rsbuildConfig: { - source: { - entry: { - index: join(fixtures, 'basic/src/index.js'), - }, - preEntry: ['./src/pre.js'], - }, - resolve: { - alias: { - '@common': './src/common', - }, - }, - }, - }); - }); - - test.afterAll(async () => { - await rsbuild.close(); - }); - - test('alias', async ({ page }) => { - await gotoPage(page, rsbuild); - await expect(page.innerHTML('#test')).resolves.toBe('Hello Rsbuild! 1'); - }); - - test('pre-entry', async ({ page }) => { - await gotoPage(page, rsbuild); - await expect(page.innerHTML('#test-el')).resolves.toBe('aaaaa'); - - // test order - await expect(page.evaluate('window.aa')).resolves.toBe(2); - }); -}); - -test('define', async ({ page }) => { - const rsbuild = await build({ - cwd: join(fixtures, 'global-vars'), - page, - rsbuildConfig: { - source: { - define: { - ENABLE_TEST: JSON.stringify(true), - }, - }, - }, - }); - - await gotoPage(page, rsbuild); - - const testEl = page.locator('#test-el'); - await expect(testEl).toHaveText('aaaaa'); - - await rsbuild.close(); -}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 91f2292e3f..2f2d9975de 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -204,6 +204,12 @@ importers: specifier: ^5.1.0 version: 5.1.0(webpack@5.97.1) + e2e/cases/output/source-map: + dependencies: + source-map: + specifier: 0.7.4 + version: 0.7.4 + e2e/cases/react/react-compiler-babel: dependencies: react: @@ -217,7 +223,7 @@ importers: specifier: ^19.0.0-beta.0 version: 19.0.0-beta-6fc168f-20241025 - e2e/cases/resolve-pkg-imports: {} + e2e/cases/resolve/pkg-imports: {} e2e/cases/rsdoctor/mock: {} @@ -229,18 +235,6 @@ importers: e2e/cases/server/ssr: {} - e2e/cases/source-map: - dependencies: - react: - specifier: ^19.0.0 - version: 19.0.0 - react-dom: - specifier: ^19.0.0 - version: 19.0.0(react@19.0.0) - source-map: - specifier: 0.7.4 - version: 0.7.4 - e2e/cases/svelte: dependencies: svelte: