Skip to content

Commit

Permalink
Fix the development and production package conditions (#9108)
Browse files Browse the repository at this point in the history
  • Loading branch information
devongovett committed Jun 24, 2023
1 parent 76aa20f commit 76e7100
Show file tree
Hide file tree
Showing 10 changed files with 39 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
throw new Error('Should never resolve');
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export const isDevelopment = true;
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
import {isDevelopment} from '#is-development';
export default isDevelopment ? 'development' : 'production';
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"module": "dist/module.js",
"imports": {
"#is-development": {
"development": "./dev.js",
"production": "./prod.js",
"default": "./default.js"
}
},
"@parcel/resolver-default": {
"packageExports": true
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export const isDevelopment = false;
Empty file.
18 changes: 18 additions & 0 deletions packages/core/integration-tests/test/resolver.js
Original file line number Diff line number Diff line change
Expand Up @@ -426,4 +426,22 @@ describe('resolver', function () {
let output = await run(b);
assert.strictEqual(output.default, 'hello bar');
});

it('should support the development and production import conditions', async () => {
let b = await bundle(
path.join(__dirname, '/integration/resolve-mode-condition/index.js'),
{mode: 'development'},
);

let output = await run(b);
assert.strictEqual(output.default, 'development');

b = await bundle(
path.join(__dirname, '/integration/resolve-mode-condition/index.js'),
{mode: 'production'},
);

output = await run(b);
assert.strictEqual(output.default, 'production');
});
});
1 change: 1 addition & 0 deletions packages/resolvers/default/src/DefaultResolver.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ export default (new Resolver({
projectRoot: options.projectRoot,
packageManager: options.packageManager,
shouldAutoInstall: options.shouldAutoInstall,
mode: options.mode,
logger,
packageExports: conf?.contents?.packageExports ?? false,
});
Expand Down
1 change: 1 addition & 0 deletions packages/resolvers/glob/src/GlobResolver.js
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ export default (new Resolver({
packageManager: options.shouldAutoInstall
? options.packageManager
: undefined,
mode: options.mode,
logger,
});

Expand Down
2 changes: 1 addition & 1 deletion packages/utils/node-resolver-core/src/Wrapper.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ type Options = {|
packageManager?: PackageManager,
logger?: PluginLogger,
shouldAutoInstall?: boolean,
mode?: BuildMode,
mode: BuildMode,
mainFields?: Array<string>,
extensions?: Array<string>,
packageExports?: boolean,
Expand Down

0 comments on commit 76e7100

Please sign in to comment.