From 743aaf34f50c6ee8810a8c54c82af7b39d428a62 Mon Sep 17 00:00:00 2001 From: chenjiahan Date: Fri, 29 Dec 2023 11:03:58 +0800 Subject: [PATCH 1/2] test: add e2e case for toml-loader --- .changeset/three-zoos-hammer.md | 6 ++++++ e2e/cases/import-toml/index.test.ts | 16 ++++++++++++++++ e2e/cases/import-toml/src/a.toml | 2 ++ e2e/cases/import-toml/src/b.toml | 1 + e2e/cases/import-toml/src/index.js | 5 +++++ .../compiled/toml-loader/index.d.ts | 0 .../compiled/toml-loader/index.js | 0 .../compiled/toml-loader/license | 0 packages/core/compiled/toml-loader/package.json | 1 + packages/core/src/plugins/toml.ts | 4 ++-- .../shared/compiled/toml-loader/package.json | 1 - packages/shared/src/types/utils.ts | 1 - pnpm-lock.yaml | 14 ++++++++++++++ scripts/prebundle/package.json | 1 + scripts/prebundle/src/constant.ts | 4 ++++ 15 files changed, 52 insertions(+), 4 deletions(-) create mode 100644 .changeset/three-zoos-hammer.md create mode 100644 e2e/cases/import-toml/index.test.ts create mode 100644 e2e/cases/import-toml/src/a.toml create mode 100644 e2e/cases/import-toml/src/b.toml create mode 100644 e2e/cases/import-toml/src/index.js rename packages/{shared => core}/compiled/toml-loader/index.d.ts (100%) rename packages/{shared => core}/compiled/toml-loader/index.js (100%) rename packages/{shared => core}/compiled/toml-loader/license (100%) create mode 100644 packages/core/compiled/toml-loader/package.json delete mode 100644 packages/shared/compiled/toml-loader/package.json diff --git a/.changeset/three-zoos-hammer.md b/.changeset/three-zoos-hammer.md new file mode 100644 index 0000000000..74f61dc65b --- /dev/null +++ b/.changeset/three-zoos-hammer.md @@ -0,0 +1,6 @@ +--- +'@rsbuild/shared': patch +'@rsbuild/core': patch +--- + +test: add e2e case for toml-loader diff --git a/e2e/cases/import-toml/index.test.ts b/e2e/cases/import-toml/index.test.ts new file mode 100644 index 0000000000..68667a2287 --- /dev/null +++ b/e2e/cases/import-toml/index.test.ts @@ -0,0 +1,16 @@ +import { expect } from '@playwright/test'; +import { rspackOnlyTest } from '@scripts/helper'; +import { build, getHrefByEntryName } from '@scripts/shared'; + +rspackOnlyTest('should import TOML correctly', async ({ page }) => { + const rsbuild = await build({ + cwd: __dirname, + runServer: true, + }); + + await page.goto(getHrefByEntryName('index', rsbuild.port)); + expect(await page.evaluate('window.age')).toBe(1); + expect(await page.evaluate('window.b')).toBe('{"list":[1,2]}'); + + await rsbuild.close(); +}); diff --git a/e2e/cases/import-toml/src/a.toml b/e2e/cases/import-toml/src/a.toml new file mode 100644 index 0000000000..47d416fce9 --- /dev/null +++ b/e2e/cases/import-toml/src/a.toml @@ -0,0 +1,2 @@ +foo = "bar" +age = 1 diff --git a/e2e/cases/import-toml/src/b.toml b/e2e/cases/import-toml/src/b.toml new file mode 100644 index 0000000000..119cc8f016 --- /dev/null +++ b/e2e/cases/import-toml/src/b.toml @@ -0,0 +1 @@ +list = [1, 2] diff --git a/e2e/cases/import-toml/src/index.js b/e2e/cases/import-toml/src/index.js new file mode 100644 index 0000000000..2a30f2da5f --- /dev/null +++ b/e2e/cases/import-toml/src/index.js @@ -0,0 +1,5 @@ +import { age } from './a.toml'; +import b from './b.toml'; + +window.age = age; +window.b = JSON.stringify(b); diff --git a/packages/shared/compiled/toml-loader/index.d.ts b/packages/core/compiled/toml-loader/index.d.ts similarity index 100% rename from packages/shared/compiled/toml-loader/index.d.ts rename to packages/core/compiled/toml-loader/index.d.ts diff --git a/packages/shared/compiled/toml-loader/index.js b/packages/core/compiled/toml-loader/index.js similarity index 100% rename from packages/shared/compiled/toml-loader/index.js rename to packages/core/compiled/toml-loader/index.js diff --git a/packages/shared/compiled/toml-loader/license b/packages/core/compiled/toml-loader/license similarity index 100% rename from packages/shared/compiled/toml-loader/license rename to packages/core/compiled/toml-loader/license diff --git a/packages/core/compiled/toml-loader/package.json b/packages/core/compiled/toml-loader/package.json new file mode 100644 index 0000000000..b429fdd690 --- /dev/null +++ b/packages/core/compiled/toml-loader/package.json @@ -0,0 +1 @@ +{"name":"toml-loader","author":"Kyle Mathews ","version":"1.0.0","license":"MIT","types":"index.d.ts","type":"commonjs"} diff --git a/packages/core/src/plugins/toml.ts b/packages/core/src/plugins/toml.ts index 0f3e8ebf1c..93e39e98d2 100644 --- a/packages/core/src/plugins/toml.ts +++ b/packages/core/src/plugins/toml.ts @@ -1,4 +1,4 @@ -import { getSharedPkgCompiledPath } from '@rsbuild/shared'; +import { join } from 'path'; import type { RsbuildPlugin } from '../types'; export const pluginToml = (): RsbuildPlugin => ({ @@ -11,7 +11,7 @@ export const pluginToml = (): RsbuildPlugin => ({ .type('javascript/auto') .test(/\.toml$/) .use(CHAIN_ID.USE.TOML) - .loader(getSharedPkgCompiledPath('toml-loader')); + .loader(join(__dirname, '../../compiled', 'toml-loader')); }); }, }); diff --git a/packages/shared/compiled/toml-loader/package.json b/packages/shared/compiled/toml-loader/package.json deleted file mode 100644 index b7730f5631..0000000000 --- a/packages/shared/compiled/toml-loader/package.json +++ /dev/null @@ -1 +0,0 @@ -{"name":"toml-loader","author":"Kyle Mathews ","version":"1.0.0","license":"MIT","types":"index.d.ts"} diff --git a/packages/shared/src/types/utils.ts b/packages/shared/src/types/utils.ts index b09f3d577c..8adb9378e7 100644 --- a/packages/shared/src/types/utils.ts +++ b/packages/shared/src/types/utils.ts @@ -36,7 +36,6 @@ export type SharedCompiledPkgNames = | 'sass-loader' | 'less-loader' | 'node-loader' - | 'toml-loader' | 'yaml-loader' | 'resolve-url-loader'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d4b5d909be..6166b9e3df 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1652,6 +1652,9 @@ importers: sirv: specifier: ^2.0.3 version: 2.0.3 + toml-loader: + specifier: 1.0.0 + version: 1.0.0 webpack-bundle-analyzer: specifier: 4.9.0 version: 4.9.0 @@ -1743,6 +1746,7 @@ packages: engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] requiresBuild: true dev: true optional: true @@ -13450,6 +13454,16 @@ packages: resolution: {integrity: sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==} dev: false + /toml-loader@1.0.0: + resolution: {integrity: sha512-/1xtg+pmD6IOuJBGtFp75hSofSVx3F8akeOS+31Rk1R5n8mYSZGKuaLM39qcxUm+SEx7zuntWR2puwYSntUKAg==} + dependencies: + toml: 2.3.6 + dev: true + + /toml@2.3.6: + resolution: {integrity: sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ==} + dev: true + /totalist@1.1.0: resolution: {integrity: sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==} engines: {node: '>=6'} diff --git a/scripts/prebundle/package.json b/scripts/prebundle/package.json index e4693e8c7d..3d80ba6761 100644 --- a/scripts/prebundle/package.json +++ b/scripts/prebundle/package.json @@ -56,6 +56,7 @@ "postcss-modules-extract-imports": "3.0.0", "sass-loader": "13.3.3", "semver": "^7.5.4", + "toml-loader": "1.0.0", "rslog": "^1.1.2", "sirv": "^2.0.3", "webpack-bundle-analyzer": "4.9.0", diff --git a/scripts/prebundle/src/constant.ts b/scripts/prebundle/src/constant.ts index 2d63aa4ed4..508462c448 100644 --- a/scripts/prebundle/src/constant.ts +++ b/scripts/prebundle/src/constant.ts @@ -57,6 +57,10 @@ export const TASKS: TaskConfig[] = [ name: 'connect-history-api-fallback', ignoreDts: true, }, + { + name: 'toml-loader', + ignoreDts: true, + }, ], }, { From 78ca271951dbe1ff80457c7dc1749e30b945f116 Mon Sep 17 00:00:00 2001 From: chenjiahan Date: Fri, 29 Dec 2023 11:10:55 +0800 Subject: [PATCH 2/2] chore: update snapshot --- .../tests/plugins/__snapshots__/default.test.ts.snap | 8 ++++---- packages/core/tests/__snapshots__/builder.test.ts.snap | 2 +- .../core/tests/plugins/__snapshots__/toml.test.ts.snap | 2 +- .../plugins/__snapshots__/default.test.ts.snap | 8 ++++---- .../plugin-react/tests/__snapshots__/index.test.ts.snap | 2 +- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/compat/webpack/tests/plugins/__snapshots__/default.test.ts.snap b/packages/compat/webpack/tests/plugins/__snapshots__/default.test.ts.snap index 59ee837270..8e36727cfb 100644 --- a/packages/compat/webpack/tests/plugins/__snapshots__/default.test.ts.snap +++ b/packages/compat/webpack/tests/plugins/__snapshots__/default.test.ts.snap @@ -352,7 +352,7 @@ exports[`applyDefaultPlugins > should apply default plugins correctly 1`] = ` "type": "javascript/auto", "use": [ { - "loader": "/packages/shared/compiled/toml-loader", + "loader": "/packages/core/compiled/toml-loader", }, ], }, @@ -848,7 +848,7 @@ exports[`applyDefaultPlugins > should apply default plugins correctly when produ "type": "javascript/auto", "use": [ { - "loader": "/packages/shared/compiled/toml-loader", + "loader": "/packages/core/compiled/toml-loader", }, ], }, @@ -1299,7 +1299,7 @@ exports[`applyDefaultPlugins > should apply default plugins correctly when targe "type": "javascript/auto", "use": [ { - "loader": "/packages/shared/compiled/toml-loader", + "loader": "/packages/core/compiled/toml-loader", }, ], }, @@ -1651,7 +1651,7 @@ exports[`applyDefaultPlugins > should apply default plugins correctly when targe "type": "javascript/auto", "use": [ { - "loader": "/packages/shared/compiled/toml-loader", + "loader": "/packages/core/compiled/toml-loader", }, ], }, diff --git a/packages/core/tests/__snapshots__/builder.test.ts.snap b/packages/core/tests/__snapshots__/builder.test.ts.snap index 02e73635a0..b3c0bb8111 100644 --- a/packages/core/tests/__snapshots__/builder.test.ts.snap +++ b/packages/core/tests/__snapshots__/builder.test.ts.snap @@ -566,7 +566,7 @@ exports[`should use rspack as default bundler > apply rspack correctly 1`] = ` "type": "javascript/auto", "use": [ { - "loader": "/packages/shared/compiled/toml-loader", + "loader": "/packages/core/compiled/toml-loader", }, ], }, diff --git a/packages/core/tests/plugins/__snapshots__/toml.test.ts.snap b/packages/core/tests/plugins/__snapshots__/toml.test.ts.snap index 808ee348ca..093fabf1ba 100644 --- a/packages/core/tests/plugins/__snapshots__/toml.test.ts.snap +++ b/packages/core/tests/plugins/__snapshots__/toml.test.ts.snap @@ -9,7 +9,7 @@ exports[`plugin-toml > should add toml rule properly 1`] = ` "type": "javascript/auto", "use": [ { - "loader": "/packages/shared/compiled/toml-loader", + "loader": "/packages/core/compiled/toml-loader", }, ], }, diff --git a/packages/core/tests/rspack-provider/plugins/__snapshots__/default.test.ts.snap b/packages/core/tests/rspack-provider/plugins/__snapshots__/default.test.ts.snap index c6b4e6c984..3d39e45165 100644 --- a/packages/core/tests/rspack-provider/plugins/__snapshots__/default.test.ts.snap +++ b/packages/core/tests/rspack-provider/plugins/__snapshots__/default.test.ts.snap @@ -566,7 +566,7 @@ exports[`applyDefaultPlugins > should apply default plugins correctly 1`] = ` "type": "javascript/auto", "use": [ { - "loader": "/packages/shared/compiled/toml-loader", + "loader": "/packages/core/compiled/toml-loader", }, ], }, @@ -1253,7 +1253,7 @@ exports[`applyDefaultPlugins > should apply default plugins correctly when prod "type": "javascript/auto", "use": [ { - "loader": "/packages/shared/compiled/toml-loader", + "loader": "/packages/core/compiled/toml-loader", }, ], }, @@ -1791,7 +1791,7 @@ exports[`applyDefaultPlugins > should apply default plugins correctly when targe "type": "javascript/auto", "use": [ { - "loader": "/packages/shared/compiled/toml-loader", + "loader": "/packages/core/compiled/toml-loader", }, ], }, @@ -2428,7 +2428,7 @@ exports[`tools.rspack > should match snapshot 1`] = ` "type": "javascript/auto", "use": [ { - "loader": "/packages/shared/compiled/toml-loader", + "loader": "/packages/core/compiled/toml-loader", }, ], }, diff --git a/packages/plugin-react/tests/__snapshots__/index.test.ts.snap b/packages/plugin-react/tests/__snapshots__/index.test.ts.snap index 3b863c142f..87ae970738 100644 --- a/packages/plugin-react/tests/__snapshots__/index.test.ts.snap +++ b/packages/plugin-react/tests/__snapshots__/index.test.ts.snap @@ -593,7 +593,7 @@ exports[`plugins/react > should work with swc-loader 1`] = ` "type": "javascript/auto", "use": [ { - "loader": "/packages/shared/compiled/toml-loader", + "loader": "/packages/core/compiled/toml-loader", }, ], },