From 44f7934626a9393c470fa0dd574abb0311e985c5 Mon Sep 17 00:00:00 2001 From: fi3ework Date: Mon, 15 Jan 2024 02:33:14 +0800 Subject: [PATCH] build: clean build script, restrict hoist of pnpm --- CONTRIBUTING.md | 8 +- packages/plugin-svelte/package.json | 3 + packages/plugin-svelte/tests/index.test.ts | 5 + packages/plugin-vue/package.json | 1 + pnpm-lock.yaml | 226 ++++++++++++--------- scripts/modern.base.config.ts | 17 +- scripts/requireShims.js | 6 - 7 files changed, 146 insertions(+), 120 deletions(-) delete mode 100644 scripts/requireShims.js diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 849c922c19..0e0cd65067 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -147,17 +147,17 @@ pnpm run --filter @rsbuild/some-package test In addition to the unit tests, the Rsbuild also includes end-to-end (E2E) tests, which checks the functionality of the application as a whole. -You can run the `test:e2e` command to run the E2E tests: +You can run the `e2e` command to run the E2E tests: ```sh -pnpm run test:e2e +pnpm run e2e ``` If you need to run a specified test, you can add keywords to filter: ```sh -# Only run test cases with the copy-assets keyword -npx jest copy-assets +# Only run test cases which contains `vue` keyword with webpack +pnpm --filter @rsbuild/e2e test:webpack -g vue ``` --- diff --git a/packages/plugin-svelte/package.json b/packages/plugin-svelte/package.json index e7781bd628..b117fcebc2 100644 --- a/packages/plugin-svelte/package.json +++ b/packages/plugin-svelte/package.json @@ -35,6 +35,9 @@ "@scripts/test-helper": "workspace:*", "@types/node": "16.x", "svelte": "^4.2.2", + "less": "^4.2.0", + "sass": "^1.69.5", + "stylus": "^0.55.0", "typescript": "^5.3.0" }, "publishConfig": { diff --git a/packages/plugin-svelte/tests/index.test.ts b/packages/plugin-svelte/tests/index.test.ts index ad3d7af448..e57b046667 100644 --- a/packages/plugin-svelte/tests/index.test.ts +++ b/packages/plugin-svelte/tests/index.test.ts @@ -4,6 +4,7 @@ import { type Transformer, pluginSvelte } from '../src'; describe('plugin-svelte', () => { it('should add svelte loader properly', async () => { const rsbuild = await createStubRsbuild({ + cwd: __dirname, rsbuildConfig: {}, plugins: [pluginSvelte()], }); @@ -16,6 +17,7 @@ describe('plugin-svelte', () => { process.env.NODE_ENV = 'production'; const rsbuild = await createStubRsbuild({ + cwd: __dirname, rsbuildConfig: {}, plugins: [pluginSvelte()], }); @@ -26,6 +28,7 @@ describe('plugin-svelte', () => { it('should turn off hmr by hand correctly', async () => { const rsbuild = await createStubRsbuild({ + cwd: __dirname, rsbuildConfig: { dev: { hmr: false, @@ -40,6 +43,7 @@ describe('plugin-svelte', () => { it('should override default svelte-loader options throw options.svelteLoaderOptions', async () => { const rsbuild = await createStubRsbuild({ + cwd: __dirname, rsbuildConfig: {}, plugins: [ pluginSvelte({ @@ -56,6 +60,7 @@ describe('plugin-svelte', () => { it('should support pass custom preprocess options', async () => { const rsbuild = await createStubRsbuild({ + cwd: __dirname, rsbuildConfig: {}, plugins: [ pluginSvelte({ diff --git a/packages/plugin-vue/package.json b/packages/plugin-vue/package.json index 273e730764..ef4958c8ad 100644 --- a/packages/plugin-vue/package.json +++ b/packages/plugin-vue/package.json @@ -35,6 +35,7 @@ "@rsbuild/core": "workspace:*", "@scripts/test-helper": "workspace:*", "typescript": "^5.3.0", + "vue": "^3.3.4", "webpack": "^5.89.0" }, "peerDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ab8c22c561..9b42c48fa6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1314,7 +1314,7 @@ importers: version: 3.1.9(svelte@4.2.2) svelte-preprocess: specifier: ^5.0.4 - version: 5.0.4(@babel/core@7.23.2)(postcss@8.4.31)(svelte@4.2.2)(typescript@5.3.2) + version: 5.0.4(@babel/core@7.23.2)(less@4.2.0)(postcss@8.4.31)(sass@1.69.6)(stylus@0.55.0)(svelte@4.2.2)(typescript@5.3.2) devDependencies: '@rsbuild/core': specifier: workspace:* @@ -1325,6 +1325,15 @@ importers: '@types/node': specifier: 16.x version: 16.18.59 + less: + specifier: ^4.2.0 + version: 4.2.0 + sass: + specifier: ^1.69.5 + version: 1.69.6 + stylus: + specifier: ^0.55.0 + version: 0.55.0 svelte: specifier: ^4.2.2 version: 4.2.2 @@ -1421,7 +1430,7 @@ importers: version: link:../shared vue-loader: specifier: ^17.4.0 - version: 17.4.0(webpack@5.89.0) + version: 17.4.0(vue@3.3.4)(webpack@5.89.0) webpack: specifier: ^5.89.0 version: 5.89.0 @@ -1435,6 +1444,9 @@ importers: typescript: specifier: ^5.3.0 version: 5.3.2 + vue: + specifier: ^3.3.4 + version: 3.3.4 packages/plugin-vue-jsx: dependencies: @@ -4334,29 +4346,10 @@ packages: '@nolyfill/shared': 1.0.24 dev: true - /@nolyfill/has@1.0.25: - resolution: {integrity: sha512-hCBNzNlKW7317HwAFq+J4kMpm89bukHsTK6BOM379ORxZPY44WVGZALerlgJ4gyyECqjVj2hI9xuTMabYjK3DA==} - engines: {node: '>=12.4.0'} - - /@nolyfill/is-regex@1.0.24: - resolution: {integrity: sha512-lWj2I/Lmf4BKUPTHUE6JihI0PrLwMGfoa6w1xPlesum2LcBu9j3+UFrK8KKEdp9v4V8bxyLx+xOhgovFrl97NQ==} - engines: {node: '>=12.4.0'} - dev: false - - /@nolyfill/isarray@1.0.25: - resolution: {integrity: sha512-wAC/8sqF2qaHrZpIxTR/9qc0XFyLW4WHX6gHVNpzKtCP8DuAL3L7eQwsMUWCg1ANL/Da3XiuueTx1J/S9piqtQ==} - engines: {node: '>=12.4.0'} - dev: false - /@nolyfill/shared@1.0.24: resolution: {integrity: sha512-TGCpg3k5N7jj9AgU/1xFw9K1g4AC1vEE5ZFkW77oPNNLzprxT17PvFaNr/lr3BkkT5fJ5LNMntaTIq+pyWaeEA==} dev: true - /@nolyfill/side-channel@1.0.24: - resolution: {integrity: sha512-v6Ook3sifnCVUtvvKedU6KNL1/W27Sj+XrLOVxBgid7+F5nFaaCUbvsfkN1R4Aw91zCt0/l4u4LzfC+NyIXQKA==} - engines: {node: '>=12.4.0'} - dev: false - /@nrwl/tao@17.2.6: resolution: {integrity: sha512-cgtUKTRSxDZ94S9IpC27/qYZJ1YttJDET+veKrtRYvwnHFgkq1peyeTTtnM25yJon7PRdm2lYrlIVdPm0vXupw==} hasBin: true @@ -5778,14 +5771,12 @@ packages: '@vue/shared': 3.3.4 estree-walker: 2.0.2 source-map-js: 1.0.2 - dev: false /@vue/compiler-dom@3.3.4: resolution: {integrity: sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==} dependencies: '@vue/compiler-core': 3.3.4 '@vue/shared': 3.3.4 - dev: false /@vue/compiler-sfc@2.7.14: resolution: {integrity: sha512-aNmNHyLPsw+sVvlQFQ2/8sjNuLtK54TC6cuKnVzAY93ks4ZBrvwQSnkkIh7bsbNhum5hJBS00wSDipQ937f5DA==} @@ -5808,14 +5799,12 @@ packages: magic-string: 0.30.5 postcss: 8.4.31 source-map-js: 1.0.2 - dev: false /@vue/compiler-ssr@3.3.4: resolution: {integrity: sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==} dependencies: '@vue/compiler-dom': 3.3.4 '@vue/shared': 3.3.4 - dev: false /@vue/component-compiler-utils@3.3.0: resolution: {integrity: sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==} @@ -5898,20 +5887,17 @@ packages: '@vue/shared': 3.3.4 estree-walker: 2.0.2 magic-string: 0.30.5 - dev: false /@vue/reactivity@3.3.4: resolution: {integrity: sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==} dependencies: '@vue/shared': 3.3.4 - dev: false /@vue/runtime-core@3.3.4: resolution: {integrity: sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==} dependencies: '@vue/reactivity': 3.3.4 '@vue/shared': 3.3.4 - dev: false /@vue/runtime-dom@3.3.4: resolution: {integrity: sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==} @@ -5919,7 +5905,6 @@ packages: '@vue/runtime-core': 3.3.4 '@vue/shared': 3.3.4 csstype: 3.1.2 - dev: false /@vue/server-renderer@3.3.4(vue@3.3.4): resolution: {integrity: sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==} @@ -5929,11 +5914,9 @@ packages: '@vue/compiler-ssr': 3.3.4 '@vue/shared': 3.3.4 vue: 3.3.4 - dev: false /@vue/shared@3.3.4: resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==} - dev: false /@webassemblyjs/ast@1.11.6: resolution: {integrity: sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==} @@ -6031,8 +6014,6 @@ packages: /@xtuc/long@4.2.2: resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - dependencies: - esbuild: 0.19.8 /@yarnpkg/lockfile@1.1.0: resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} @@ -6223,7 +6204,7 @@ packages: /assert@1.5.1: resolution: {integrity: sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==} dependencies: - object.assign: 4.1.5 + object.assign: 4.1.4 util: 0.10.4 dev: false @@ -6245,6 +6226,11 @@ packages: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} dev: true + /atob@2.1.2: + resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} + engines: {node: '>= 4.5.0'} + hasBin: true + /autoprefixer@10.4.16(postcss@8.4.31): resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==} engines: {node: ^10 || ^12 || >=14} @@ -6300,7 +6286,7 @@ packages: /babel-plugin-dynamic-import-node@2.3.3: resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} dependencies: - object.assign: 4.1.5 + object.assign: 4.1.4 dev: false /babel-plugin-jsx-dom-expressions@0.37.9(@babel/core@7.23.2): @@ -6519,7 +6505,7 @@ packages: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - isarray: /@nolyfill/isarray@1.0.25 + isarray: 1.0.0 dev: false /buffer@5.7.1: @@ -6561,12 +6547,11 @@ packages: responselike: 2.0.1 dev: false - /call-bind@1.0.5: - resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} + /call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: function-bind: 1.1.2 - get-intrinsic: 1.2.2 - set-function-length: 1.1.1 + get-intrinsic: 1.2.1 dev: false /callsites@3.1.0: @@ -6678,7 +6663,7 @@ packages: /character-parser@2.2.0: resolution: {integrity: sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==} dependencies: - is-regex: /@nolyfill/is-regex@1.0.24 + is-regex: 1.1.4 dev: false /character-reference-invalid@1.1.4: @@ -6911,7 +6896,7 @@ packages: dev: true /concat-map@0.0.1: - resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} /connect-history-api-fallback@2.0.0: resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} @@ -7127,7 +7112,6 @@ packages: resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} dependencies: is-what: 3.14.1 - dev: true /copy-to-clipboard@3.3.3: resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} @@ -7341,6 +7325,13 @@ packages: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} + /css@3.0.0: + resolution: {integrity: sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==} + dependencies: + inherits: 2.0.4 + source-map: 0.6.1 + source-map-resolve: 0.6.0 + /cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} @@ -7451,6 +7442,16 @@ packages: ms: 2.0.0 dev: true + /debug@3.1.0: + resolution: {integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + /debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} requiresBuild: true @@ -7461,7 +7462,6 @@ packages: optional: true dependencies: ms: 2.1.3 - dev: true optional: true /debug@4.3.4: @@ -7494,6 +7494,10 @@ packages: character-entities: 2.0.2 dev: true + /decode-uri-component@0.2.2: + resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} + engines: {node: '>=0.10'} + /decompress-response@6.0.0: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} engines: {node: '>=10'} @@ -7532,9 +7536,9 @@ packages: resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.1 gopd: 1.0.1 - has-property-descriptors: 1.0.1 + has-property-descriptors: 1.0.0 dev: false /define-lazy-prop@2.0.0: @@ -7547,7 +7551,7 @@ packages: engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.1 - has-property-descriptors: 1.0.1 + has-property-descriptors: 1.0.0 object-keys: 1.1.1 dev: false @@ -7781,7 +7785,6 @@ packages: requiresBuild: true dependencies: prr: 1.0.1 - dev: true optional: true /error-ex@1.3.2: @@ -8250,13 +8253,13 @@ packages: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} dev: true - /get-intrinsic@1.2.2: - resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} + /get-intrinsic@1.2.1: + resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} dependencies: function-bind: 1.1.2 + has: 1.0.4 has-proto: 1.0.1 has-symbols: 1.0.3 - hasown: 2.0.0 dev: false /get-stream@5.2.0: @@ -8366,7 +8369,7 @@ packages: /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.1 dev: false /got@11.8.6: @@ -8427,10 +8430,10 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - /has-property-descriptors@1.0.1: - resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} + /has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} dependencies: - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.1 dev: false /has-proto@1.0.1: @@ -8443,6 +8446,17 @@ packages: engines: {node: '>= 0.4'} dev: false + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: false + + /has@1.0.4: + resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==} + engines: {node: '>= 0.4.0'} + /hash-base@3.1.0: resolution: {integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==} engines: {node: '>=4'} @@ -8467,13 +8481,6 @@ packages: minimalistic-assert: 1.0.1 dev: false - /hasown@2.0.0: - resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} - engines: {node: '>= 0.4'} - dependencies: - function-bind: 1.1.2 - dev: false - /hast-util-from-html@1.0.2: resolution: {integrity: sha512-LhrTA2gfCbLOGJq2u/asp4kwuG0y6NhWTXiPKP+n0qNukKy7hc10whqqCFfyvIA1Q5U5d0sp9HhNim9gglEH4A==} dependencies: @@ -8794,7 +8801,6 @@ packages: requiresBuild: true dependencies: safer-buffer: 2.1.2 - dev: true optional: true /icss-replace-symbols@1.1.0: @@ -8821,12 +8827,10 @@ packages: engines: {node: '>=0.10.0'} hasBin: true requiresBuild: true - dev: true optional: true /immutable@4.3.4: resolution: {integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==} - dev: true /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} @@ -8928,7 +8932,7 @@ packages: /is-core-module@2.13.0: resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} dependencies: - has: /@nolyfill/has@1.0.25 + has: 1.0.4 /is-decimal@1.0.4: resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} @@ -9031,6 +9035,14 @@ packages: dependencies: '@types/estree': 1.0.3 + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: false + /is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} @@ -9053,7 +9065,6 @@ packages: /is-what@3.14.1: resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} - dev: true /is-windows@1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} @@ -9066,6 +9077,10 @@ packages: is-docker: 2.2.1 dev: true + /isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + dev: false + /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -9268,7 +9283,6 @@ packages: source-map: 0.6.1 transitivePeerDependencies: - supports-color - dev: true /levdist@1.0.0: resolution: {integrity: sha512-YguwC2spb0pqpJM3a5OsBhih/GG2ZHoaSHnmBqhEI7997a36buhqcRTegEjozHxyxByIwLpZHZTVYMThq+Zd3g==} @@ -9505,7 +9519,6 @@ packages: dependencies: pify: 4.0.1 semver: 5.7.2 - dev: true optional: true /map-obj@1.0.1: @@ -10137,7 +10150,6 @@ packages: engines: {node: '>=4'} hasBin: true requiresBuild: true - dev: true optional: true /mimic-fn@2.1.0: @@ -10265,7 +10277,6 @@ packages: /ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - dev: true /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} @@ -10273,7 +10284,6 @@ packages: /ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} requiresBuild: true - dev: true optional: true /mute-stream@0.0.8: @@ -10312,7 +10322,6 @@ packages: sax: 1.2.4 transitivePeerDependencies: - supports-color - dev: true optional: true /negotiator@0.6.3: @@ -10498,16 +10507,20 @@ packages: engines: {node: '>= 6'} dev: true + /object-inspect@1.13.0: + resolution: {integrity: sha512-HQ4J+ic8hKrgIt3mqk6cVOVrW2ozL4KdvHlqpBv9vDYWx9ysAgENAdvy4FoGF+KFdhR7nQTNm5J0ctAeOwn+3g==} + dev: false + /object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} dev: false - /object.assign@4.1.5: - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + /object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.2 define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 @@ -10714,7 +10727,6 @@ packages: /parse-node-version@1.0.1: resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} engines: {node: '>= 0.10'} - dev: true /parse5@6.0.1: resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} @@ -11402,7 +11414,6 @@ packages: /prr@1.0.1: resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} requiresBuild: true - dev: true optional: true /pseudomap@1.0.2: @@ -11529,7 +11540,7 @@ packages: resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} engines: {node: '>=0.6'} dependencies: - side-channel: /@nolyfill/side-channel@1.0.24 + side-channel: 1.0.4 dev: false /querystring-es3@0.2.1: @@ -11694,7 +11705,7 @@ packages: dependencies: core-util-is: 1.0.3 inherits: 2.0.4 - isarray: /@nolyfill/isarray@1.0.25 + isarray: 1.0.0 process-nextick-args: 2.0.1 safe-buffer: 5.1.2 string_decoder: 1.1.1 @@ -12063,7 +12074,6 @@ packages: chokidar: 3.5.3 immutable: 4.3.4 source-map-js: 1.0.2 - dev: true /sax@1.2.4: resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} @@ -12107,7 +12117,6 @@ packages: /semver@5.7.2: resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} hasBin: true - dev: true /semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} @@ -12142,16 +12151,6 @@ packages: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: true - /set-function-length@1.1.1: - resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} - engines: {node: '>= 0.4'} - dependencies: - define-data-property: 1.1.1 - get-intrinsic: 1.2.2 - gopd: 1.0.1 - has-property-descriptors: 1.0.1 - dev: false - /set-value@4.1.0: resolution: {integrity: sha512-zTEg4HL0RwVrqcWs3ztF+x1vkxfm0lP+MQQFPiMJTKVceBwEV0A569Ou8l9IYQG8jOZdMVI1hGsc0tmeD2o/Lw==} engines: {node: '>=11.0'} @@ -12202,6 +12201,14 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + object-inspect: 1.13.0 + dev: false + /siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} dev: true @@ -12305,6 +12312,13 @@ packages: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} + /source-map-resolve@0.6.0: + resolution: {integrity: sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==} + deprecated: See https://github.com/lydell/source-map-resolve#deprecated + dependencies: + atob: 2.1.2 + decode-uri-component: 0.2.2 + /source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} dependencies: @@ -12550,6 +12564,21 @@ packages: webpack: 5.89.0 dev: false + /stylus@0.55.0: + resolution: {integrity: sha512-MuzIIVRSbc8XxHH7FjkvWqkIcr1BvoMZoR/oFuAJDlh7VSaNJzrB4uJ38GRQa+mWjLXODAMzeDe0xi9GYbGwnw==} + hasBin: true + dependencies: + css: 3.0.0 + debug: 3.1.0 + glob: 7.2.3 + mkdirp: 1.0.4 + safer-buffer: 2.1.2 + sax: 1.2.4 + semver: 6.3.1 + source-map: 0.7.4 + transitivePeerDependencies: + - supports-color + /stylus@0.59.0: resolution: {integrity: sha512-lQ9w/XIOH5ZHVNuNbWW8D822r+/wBSO/d6XvtyHLF7LW4KaCIDeVbvn5DF8fGCJAUCwVhVi/h6J0NUcnylUEjg==} hasBin: true @@ -12643,7 +12672,7 @@ packages: svelte-hmr: 0.14.12(svelte@4.2.2) dev: false - /svelte-preprocess@5.0.4(@babel/core@7.23.2)(postcss@8.4.31)(svelte@4.2.2)(typescript@5.3.2): + /svelte-preprocess@5.0.4(@babel/core@7.23.2)(less@4.2.0)(postcss@8.4.31)(sass@1.69.6)(stylus@0.55.0)(svelte@4.2.2)(typescript@5.3.2): resolution: {integrity: sha512-ABia2QegosxOGsVlsSBJvoWeXy1wUKSfF7SWJdTjLAbx/Y3SrVevvvbFNQqrSJw89+lNSsM58SipmZJ5SRi5iw==} engines: {node: '>= 14.10.0'} requiresBuild: true @@ -12684,10 +12713,13 @@ packages: '@babel/core': 7.23.2 '@types/pug': 2.0.8 detect-indent: 6.1.0 + less: 4.2.0 magic-string: 0.27.0 postcss: 8.4.31 + sass: 1.69.6 sorcery: 0.11.0 strip-indent: 3.0.0 + stylus: 0.55.0 svelte: 4.2.2 typescript: 5.3.2 dev: false @@ -12970,7 +13002,7 @@ packages: dev: false /toml-loader@1.0.0: - resolution: {integrity: sha1-BSSbkpS2I2ARSCYMqkgLIqZToZo=} + resolution: {integrity: sha512-/1xtg+pmD6IOuJBGtFp75hSofSVx3F8akeOS+31Rk1R5n8mYSZGKuaLM39qcxUm+SEx7zuntWR2puwYSntUKAg==} dependencies: toml: 2.3.6 dev: true @@ -13277,7 +13309,7 @@ packages: dev: false /utils-merge@1.0.1: - resolution: {integrity: sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=} + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} dev: true @@ -13555,7 +13587,7 @@ packages: - whiskers dev: false - /vue-loader@17.4.0(webpack@5.89.0): + /vue-loader@17.4.0(vue@3.3.4)(webpack@5.89.0): resolution: {integrity: sha512-tq81JlBNWYvoYAh5PRZXg5bE7BEv0Id6W7BF5otj18MtHgu5OqiK9rQu0z73r+VGlIq0lLDoEeC7RWYynUpXlQ==} peerDependencies: '@vue/compiler-sfc': '*' @@ -13569,6 +13601,7 @@ packages: dependencies: chalk: 4.1.2 hash-sum: 2.0.0 + vue: 3.3.4 watchpack: 2.4.0 webpack: 5.89.0 dev: false @@ -13609,7 +13642,6 @@ packages: '@vue/runtime-dom': 3.3.4 '@vue/server-renderer': 3.3.4(vue@3.3.4) '@vue/shared': 3.3.4 - dev: false /w-json@1.3.10: resolution: {integrity: sha512-XadVyw0xE+oZ5FGApXsdswv96rOhStzKqL53uSe5UaTadABGkWIg1+DTx8kiZ/VqTZTBneoL0l65RcPe4W3ecw==} diff --git a/scripts/modern.base.config.ts b/scripts/modern.base.config.ts index a57eb8ae79..220ee8a85f 100644 --- a/scripts/modern.base.config.ts +++ b/scripts/modern.base.config.ts @@ -3,7 +3,6 @@ import { moduleTools, type PartialBaseBuildConfig, } from '@modern-js/module-tools'; -import path from 'path'; const define = { RSBUILD_VERSION: require('../packages/core/package.json').version, @@ -44,18 +43,10 @@ export const buildConfigWithMjs: PartialBaseBuildConfig[] = [ autoExtension: true, shims: true, externals, - esbuildOptions: (option) => { - let { inject } = option; - const filepath = path.join(__dirname, 'requireShims.js'); - if (inject) { - inject.push(filepath); - } else { - inject = [filepath]; - } - return { - ...option, - inject, - }; + // use import.meta['url'] to bypass bundle-require replacement of import.meta.url + banner: { + js: `import { createRequire } from 'module'; +var require = createRequire(import.meta['url']);\n`, }, }, ]; diff --git a/scripts/requireShims.js b/scripts/requireShims.js deleted file mode 100644 index b8628c81fd..0000000000 --- a/scripts/requireShims.js +++ /dev/null @@ -1,6 +0,0 @@ -// If you declare a variable named 'require', esbuild will change it to 'require2' -// Otherwise you use banner to add this code, import.meta.url will be replaced with source file's value by bundle-require -// So we can only add it to global scope, and not pure -import { createRequire } from 'module'; - -global.require = createRequire(import.meta.url);