Skip to content

Commit de8149c

Browse files
authored
chore: ignore optional dependencies when bundling for Yarn (#3576)
1 parent d47e9d8 commit de8149c

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

.changeset/long-moles-build.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
---
2+
---

scripts/src/commands/bundle.js

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,14 @@ import * as fs from "node:fs";
77
* @typedef {import("esbuild").BuildOptions} BuildOptions
88
* @typedef {BuildOptions["platform"]} Platform
99
* @typedef {{ node?: string }} Engines
10-
* @typedef {{ name: string, main: string, dependencies?: Record<string, string>, peerDependencies?: Record<string, string>, engines?: Record<string, string> }} Manifest
10+
* @typedef {{
11+
* name: string;
12+
* main: string;
13+
* dependencies?: Record<string, string>;
14+
* peerDependencies?: Record<string, string>;
15+
* peerDependenciesMeta?: Record<string, { optional: boolean; }>;
16+
* engines?: Record<string, string>;
17+
* }} Manifest
1118
* @typedef {{ minify?: boolean, platform?: string, sourceMap?: boolean }} BundleOptions
1219
* @typedef {(manifest: Manifest) => Partial<BuildOptions>} OptionPreset
1320
*/
@@ -73,7 +80,7 @@ function neutralPreset(manifest) {
7380
* @returns {Partial<BuildOptions>}
7481
*/
7582
function yarnPreset(manifest) {
76-
const name = manifest.name;
83+
const { name, peerDependenciesMeta } = manifest;
7784
return {
7885
banner: {
7986
js: [
@@ -90,7 +97,10 @@ function yarnPreset(manifest) {
9097
js: [`return plugin;`, `}`, `};`].join(`\n`),
9198
},
9299
resolveExtensions: [`.tsx`, `.ts`, `.jsx`, `.mjs`, `.js`, `.css`, `.json`],
93-
external: [...getDynamicLibs().keys()],
100+
external: [
101+
...(peerDependenciesMeta ? Object.keys(peerDependenciesMeta) : []),
102+
...getDynamicLibs().keys(),
103+
],
94104
platform: "node",
95105
target: getNodeTarget(manifest),
96106
supported: {

0 commit comments

Comments
 (0)