From fe73198d2412b786aa050b7fd58a9a543b9d07a7 Mon Sep 17 00:00:00 2001 From: sun0day Date: Thu, 27 Apr 2023 20:35:43 +0800 Subject: [PATCH] test(resolve): ssr deep import resolve (#13022) --- .../ssr-resolve/__tests__/ssr-resolve.spec.ts | 8 ++++++++ .../ssr-resolve/deep-import/bar/package.json | 7 +++++++ playground/ssr-resolve/deep-import/foo/index.js | 1 + .../ssr-resolve/deep-import/foo/package.json | 6 ++++++ playground/ssr-resolve/deep-import/index.js | 3 +++ playground/ssr-resolve/deep-import/package.json | 7 +++++++ playground/ssr-resolve/deep-import/utils/bar.js | 1 + playground/ssr-resolve/main.js | 4 ++++ playground/ssr-resolve/package.json | 3 ++- pnpm-lock.yaml | 15 +++++++++++++++ 10 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 playground/ssr-resolve/deep-import/bar/package.json create mode 100644 playground/ssr-resolve/deep-import/foo/index.js create mode 100644 playground/ssr-resolve/deep-import/foo/package.json create mode 100644 playground/ssr-resolve/deep-import/index.js create mode 100644 playground/ssr-resolve/deep-import/package.json create mode 100644 playground/ssr-resolve/deep-import/utils/bar.js diff --git a/playground/ssr-resolve/__tests__/ssr-resolve.spec.ts b/playground/ssr-resolve/__tests__/ssr-resolve.spec.ts index b702a3ccd84d16..f3842838c59542 100644 --- a/playground/ssr-resolve/__tests__/ssr-resolve.spec.ts +++ b/playground/ssr-resolve/__tests__/ssr-resolve.spec.ts @@ -15,5 +15,13 @@ test.runIf(isBuild)('correctly resolve entrypoints', async () => { new RegExp(`from ${_}@vitejs/test-resolve-pkg-exports/entry${_}`), ) + expect(contents).toMatch( + new RegExp(`from ${_}@vitejs/test-deep-import/foo/index.js${_}`), + ) + + expect(contents).toMatch( + new RegExp(`from ${_}@vitejs/test-deep-import/bar${_}`), + ) + await expect(import(`${testDir}/dist/main.mjs`)).resolves.toBeTruthy() }) diff --git a/playground/ssr-resolve/deep-import/bar/package.json b/playground/ssr-resolve/deep-import/bar/package.json new file mode 100644 index 00000000000000..9c28d3fd659022 --- /dev/null +++ b/playground/ssr-resolve/deep-import/bar/package.json @@ -0,0 +1,7 @@ +{ + "private": true, + "version": "0.0.0", + "type": "module", + "main": "../utils/bar.js", + "module": "../utils/bar.js" +} diff --git a/playground/ssr-resolve/deep-import/foo/index.js b/playground/ssr-resolve/deep-import/foo/index.js new file mode 100644 index 00000000000000..7e942cf45c8a37 --- /dev/null +++ b/playground/ssr-resolve/deep-import/foo/index.js @@ -0,0 +1 @@ +export default 'foo' diff --git a/playground/ssr-resolve/deep-import/foo/package.json b/playground/ssr-resolve/deep-import/foo/package.json new file mode 100644 index 00000000000000..23c18d67103169 --- /dev/null +++ b/playground/ssr-resolve/deep-import/foo/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "version": "0.0.0", + "type": "module", + "module": "./index.js" +} diff --git a/playground/ssr-resolve/deep-import/index.js b/playground/ssr-resolve/deep-import/index.js new file mode 100644 index 00000000000000..d397f45e627464 --- /dev/null +++ b/playground/ssr-resolve/deep-import/index.js @@ -0,0 +1,3 @@ +export { default as foo } from './foo' +export { default as bar } from './bar' +export default 'external-nested' diff --git a/playground/ssr-resolve/deep-import/package.json b/playground/ssr-resolve/deep-import/package.json new file mode 100644 index 00000000000000..373581df14f471 --- /dev/null +++ b/playground/ssr-resolve/deep-import/package.json @@ -0,0 +1,7 @@ +{ + "name": "@vitejs/test-deep-import", + "private": true, + "version": "0.0.0", + "type": "module", + "module": "index.js" +} diff --git a/playground/ssr-resolve/deep-import/utils/bar.js b/playground/ssr-resolve/deep-import/utils/bar.js new file mode 100644 index 00000000000000..4548a26ba14dc8 --- /dev/null +++ b/playground/ssr-resolve/deep-import/utils/bar.js @@ -0,0 +1 @@ +export default 'bar' diff --git a/playground/ssr-resolve/main.js b/playground/ssr-resolve/main.js index b4b5998c8100d0..2357458b50bc8c 100644 --- a/playground/ssr-resolve/main.js +++ b/playground/ssr-resolve/main.js @@ -4,9 +4,13 @@ import dirEntry from '@vitejs/test-entries/dir' import fileEntry from '@vitejs/test-entries/file' // has `exports` key, should resolve to pkg-exports/entry import pkgExportsEntry from '@vitejs/test-resolve-pkg-exports/entry' +import deepFoo from '@vitejs/test-deep-import/foo' +import deepBar from '@vitejs/test-deep-import/bar' export default ` entries/dir: ${dirEntry} entries/file: ${fileEntry} pkg-exports/entry: ${pkgExportsEntry} + deep-import/foo: ${deepFoo} + deep-import/bar: ${deepBar} ` diff --git a/playground/ssr-resolve/package.json b/playground/ssr-resolve/package.json index 938bdb083877c4..f228e2b0c2c17b 100644 --- a/playground/ssr-resolve/package.json +++ b/playground/ssr-resolve/package.json @@ -8,6 +8,7 @@ }, "dependencies": { "@vitejs/test-entries": "file:./entries", - "@vitejs/test-resolve-pkg-exports": "file:./pkg-exports" + "@vitejs/test-resolve-pkg-exports": "file:./pkg-exports", + "@vitejs/test-deep-import": "file:./deep-import" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3ed07865f47010..6540cd1371fa07 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1281,6 +1281,9 @@ importers: playground/ssr-resolve: dependencies: + '@vitejs/test-deep-import': + specifier: file:./deep-import + version: file:playground/ssr-resolve/deep-import '@vitejs/test-entries': specifier: file:./entries version: file:playground/ssr-resolve/entries @@ -1288,6 +1291,12 @@ importers: specifier: file:./pkg-exports version: file:playground/ssr-resolve/pkg-exports + playground/ssr-resolve/deep-import: {} + + playground/ssr-resolve/deep-import/bar: {} + + playground/ssr-resolve/deep-import/foo: {} + playground/ssr-resolve/entries: {} playground/ssr-resolve/pkg-exports: {} @@ -10700,6 +10709,12 @@ packages: '@vitejs/test-external-cjs': file:playground/ssr-noexternal/external-cjs dev: false + file:playground/ssr-resolve/deep-import: + resolution: {directory: playground/ssr-resolve/deep-import, type: directory} + name: '@vitejs/test-deep-import' + version: 0.0.0 + dev: false + file:playground/ssr-resolve/entries: resolution: {directory: playground/ssr-resolve/entries, type: directory} name: '@vitejs/test-entries'