diff --git a/playground/resolve/__tests__/resolve.spec.ts b/playground/resolve/__tests__/resolve.spec.ts index 680ce193d3bd4b..7263c0c223ee66 100644 --- a/playground/resolve/__tests__/resolve.spec.ts +++ b/playground/resolve/__tests__/resolve.spec.ts @@ -97,6 +97,10 @@ test('Resolve module field if browser field is likely UMD or CJS', async () => { expect(await page.textContent('.browser-module2')).toMatch('[success]') }) +test('Resolve module field if browser field is likely IIFE', async () => { + expect(await page.textContent('.browser-module3')).toMatch('[success]') +}) + test('css entry', async () => { expect(await page.textContent('.css')).toMatch('[success]') }) diff --git a/playground/resolve/browser-module-field3/index.js b/playground/resolve/browser-module-field3/index.js new file mode 100644 index 00000000000000..99af62f8e3700e --- /dev/null +++ b/playground/resolve/browser-module-field3/index.js @@ -0,0 +1 @@ +export default '[success] this should run in browser' diff --git a/playground/resolve/browser-module-field3/index.web.js b/playground/resolve/browser-module-field3/index.web.js new file mode 100644 index 00000000000000..843b376e2c4daa --- /dev/null +++ b/playground/resolve/browser-module-field3/index.web.js @@ -0,0 +1,7 @@ +var browserModuleField3 = (function () { + 'use strict' + + var main = '[fail] this should not run in the browser' + + return main +})() diff --git a/playground/resolve/browser-module-field3/package.json b/playground/resolve/browser-module-field3/package.json new file mode 100644 index 00000000000000..931c6a0ebd9eb4 --- /dev/null +++ b/playground/resolve/browser-module-field3/package.json @@ -0,0 +1,7 @@ +{ + "name": "resolve-browser-module-field3", + "private": true, + "version": "1.0.0", + "module": "index.js", + "browser": "index.web.js" +} diff --git a/playground/resolve/index.html b/playground/resolve/index.html index 7502c422e0eb82..c744d4b9317463 100644 --- a/playground/resolve/index.html +++ b/playground/resolve/index.html @@ -82,6 +82,9 @@

Resolve browser field even if module field exists

Resolve module field if browser field is likely UMD or CJS

fail

+

Resolve module field if browser field is likely IIFE

+

fail

+

Don't resolve to the `module` field if the importer is a `require` call

fail

@@ -225,6 +228,9 @@

resolve package that contains # in path

import browserModule2 from 'resolve-browser-module-field2' text('.browser-module2', browserModule2) + import browserModule3 from 'resolve-browser-module-field3' + text('.browser-module3', browserModule3) + import { msg as requireButWithModuleFieldMsg } from 'require-pkg-with-module-field' text('.require-pkg-with-module-field', requireButWithModuleFieldMsg) diff --git a/playground/resolve/package.json b/playground/resolve/package.json index 5763ad88b79ead..1b8e76e353a7ff 100644 --- a/playground/resolve/package.json +++ b/playground/resolve/package.json @@ -16,6 +16,7 @@ "resolve-browser-field": "link:./browser-field", "resolve-browser-module-field1": "link:./browser-module-field1", "resolve-browser-module-field2": "link:./browser-module-field2", + "resolve-browser-module-field3": "link:./browser-module-field3", "resolve-custom-condition": "link:./custom-condition", "resolve-custom-main-field": "link:./custom-main-field", "resolve-exports-env": "link:./exports-env", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6ae863cf61692e..48c2030951703a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -847,6 +847,7 @@ importers: resolve-browser-field: link:./browser-field resolve-browser-module-field1: link:./browser-module-field1 resolve-browser-module-field2: link:./browser-module-field2 + resolve-browser-module-field3: link:./browser-module-field3 resolve-custom-condition: link:./custom-condition resolve-custom-main-field: link:./custom-main-field resolve-exports-env: link:./exports-env @@ -860,6 +861,7 @@ importers: resolve-browser-field: link:browser-field resolve-browser-module-field1: link:browser-module-field1 resolve-browser-module-field2: link:browser-module-field2 + resolve-browser-module-field3: link:browser-module-field3 resolve-custom-condition: link:custom-condition resolve-custom-main-field: link:custom-main-field resolve-exports-env: link:exports-env @@ -881,6 +883,9 @@ importers: playground/resolve/browser-module-field2: specifiers: {} + playground/resolve/browser-module-field3: + specifiers: {} + playground/resolve/custom-condition: specifiers: {}