Skip to content

Commit

Permalink
Fix regression where main was ignored on browser object packages (#528)
Browse files Browse the repository at this point in the history
* fix regression where main was ignored on browser object packages

* fix test output

* fix test output
  • Loading branch information
FredKSchott committed Jun 22, 2020
1 parent c83d019 commit 2f30978
Show file tree
Hide file tree
Showing 10 changed files with 26 additions and 8 deletions.
7 changes: 5 additions & 2 deletions src/commands/install.ts
Original file line number Diff line number Diff line change
Expand Up @@ -178,8 +178,7 @@ function resolveWebDependency(dep: string): DependencyLoc {
depManifest['browser:module'] ||
depManifest.module ||
depManifest['main:esnext'] ||
depManifest.browser ||
depManifest.main;
depManifest.browser;
// Some packages define "browser" as an object. We'll do our best to find the
// right entrypoint in an entrypoint object, or fail otherwise.
// See: https://github.com/defunctzombie/package-browser-field-spec
Expand All @@ -191,6 +190,10 @@ function resolveWebDependency(dep: string): DependencyLoc {
foundEntrypoint['./'] ||
foundEntrypoint['.'];
}
// If browser object is set but no relevant entrypoint is found, fall back to "main".
if (!foundEntrypoint) {
foundEntrypoint = depManifest.main;
}
// Sometimes packages don't give an entrypoint, assuming you'll fall back to "index.js".
const isImplicitEntrypoint = !foundEntrypoint;
if (isImplicitEntrypoint) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"imports": {
"mock-test-package": "./mock-test-package.js"
"package-has-valid": "./package-has-valid.js",
"package-no-valid": "./package-no-valid.js"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
const foobar = 42;

export { foobar };
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
- snowpack installing...
✔ snowpack install complete.
⦿ web_modules/ size gzip brotli
└─ mock-test-package.js XXXX KB XXXX KB XXXX KB
├─ package-has-valid.js XXXX KB XXXX KB XXXX KB
└─ package-no-valid.js XXXX KB XXXX KB XXXX KB

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 4 additions & 3 deletions test/integration/dep-browser-entrypoint-object/package.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
{
"description": "Test that we can handle a package.json 'browser' object entrypoint",
"description": "Test that we properly handle a package.json 'browser' object.",
"scripts": {
"TEST": "node ../../../pkg/dist-node/index.bin.js"
},
"snowpack": {
"install": ["mock-test-package"]
"install": ["package-has-valid", "package-no-valid"]
},
"dependencies": {
"mock-test-package": "^1.2.3"
"package-has-valid": "^1.2.3",
"package-no-valid": "^1.2.3"
}
}

1 comment on commit 2f30978

@vercel
Copy link

@vercel vercel bot commented on 2f30978 Jun 22, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.