bunup 0.15.11 → 0.15.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/index.js +4 -4
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/plugins.d.ts +1 -1
- package/dist/plugins.js +1 -1
- package/dist/shared/{bunup-2waee6qa.js → bunup-0rejsmya.js} +23 -4
- package/dist/shared/{bunup-sfnfcavb.d.ts → bunup-a77gk35v.d.ts} +22 -0
- package/dist/shared/{bunup-857264mj.js → bunup-qb65sm3k.js} +1 -1
- package/package.json +1 -1
package/dist/cli/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
build,
|
|
5
5
|
processLoadedConfigs,
|
|
6
6
|
resolveBuildOptions
|
|
7
|
-
} from "../shared/bunup-
|
|
7
|
+
} from "../shared/bunup-0rejsmya.js";
|
|
8
8
|
import {
|
|
9
9
|
BunupBuildError,
|
|
10
10
|
BunupCLIError,
|
|
@@ -21,13 +21,13 @@ import {
|
|
|
21
21
|
logTime,
|
|
22
22
|
logger,
|
|
23
23
|
parseErrorMessage
|
|
24
|
-
} from "../shared/bunup-
|
|
24
|
+
} from "../shared/bunup-qb65sm3k.js";
|
|
25
25
|
|
|
26
26
|
// packages/bunup/src/cli/index.ts
|
|
27
27
|
import { loadConfig } from "coffi";
|
|
28
28
|
import pc4 from "picocolors";
|
|
29
29
|
// packages/bunup/package.json
|
|
30
|
-
var version = "0.15.
|
|
30
|
+
var version = "0.15.13";
|
|
31
31
|
|
|
32
32
|
// packages/bunup/src/printer/print-build-report.ts
|
|
33
33
|
import { promisify } from "util";
|
|
@@ -259,7 +259,7 @@ var program = cli().name("bunup").version(version).description("A blazing-fast b
|
|
|
259
259
|
pc3.gray(`${pc3.blue("bunup src/cli.ts")} # Multiple entries`),
|
|
260
260
|
pc3.gray(`${pc3.blue("bunup --dts.splitting")} # Declaration splitting`),
|
|
261
261
|
pc3.gray(`${pc3.blue("bunup --no-clean")} # Disable cleaning output directory before build`)
|
|
262
|
-
]).option("entry", z.union(z.string().describe("Entry file or glob pattern"), z.array(z.string()).describe("Multiple entry files or globs")).alias("e").optional()).option("config", z.union(z.string().describe("Path to a custom configuration file").alias("c").example("./configs/custom.bunup.config.js"), z.boolean().describe("Whether to use a configuration file").default(true)).optional()).option("filter", z.array(z.string()).describe("Filter workspace packages by name").optional()).option("name", z.string().describe("Name of the build configuration (for logging and identification)").example("my-library").optional()).option("out-dir", z.string().describe("Output directory for bundled files").alias("o").default("dist")).option("format", z.union(z.string().choices(["esm", "cjs", "iife"]).describe("Single output format"), z.array(z.string().choices(["esm", "cjs", "iife"])).describe("Multiple output formats")).alias("f").default("esm")).option("minify", z.boolean().describe("Enable all minification options (whitespace, identifiers, syntax)").optional()).option("minify-whitespace", z.boolean().describe("Minify whitespace in the output to reduce file size").optional()).option("minify-identifiers", z.boolean().describe("Minify identifiers by renaming variables to shorter names").optional()).option("minify-syntax", z.boolean().describe("Minify syntax by optimizing code structure").optional()).option("watch", z.boolean().describe("Watch for file changes and rebuild automatically").optional()).option("clean", z.boolean().describe("Clean the output directory before building").default(true)).option("silent", z.boolean().describe("Disable logging during the build process").alias("q").optional()).option("splitting", z.boolean().describe("Enable code splitting").default(true, "enabled by default for ESM format")).option("conditions", z.array(z.string()).describe("Package.json export conditions for import resolution").optional()).option("target", z.string().choices(["bun", "node", "browser"]).describe("Target environment for the bundle").alias("t").default("node")).option("external", z.array(z.string()).describe("External packages that should not be bundled").optional()).option("no-external", z.array(z.string()).describe("Packages that should be bundled even if listed in external").optional()).option("shims", z.boolean().describe("Enable shims for Node.js globals and ESM/CJS interoperability").optional()).option("report", z.object({
|
|
262
|
+
]).option("entry", z.union(z.string().describe("Entry file or glob pattern"), z.array(z.string()).describe("Multiple entry files or globs")).alias("e").optional()).option("config", z.union(z.string().describe("Path to a custom configuration file").alias("c").example("./configs/custom.bunup.config.js"), z.boolean().describe("Whether to use a configuration file").default(true)).optional()).option("filter", z.array(z.string()).describe("Filter workspace packages or config array items by name").optional()).option("name", z.string().describe("Name of the build configuration (for logging and identification)").example("my-library").optional()).option("out-dir", z.string().describe("Output directory for bundled files").alias("o").default("dist")).option("format", z.union(z.string().choices(["esm", "cjs", "iife"]).describe("Single output format"), z.array(z.string().choices(["esm", "cjs", "iife"])).describe("Multiple output formats")).alias("f").default("esm")).option("minify", z.boolean().describe("Enable all minification options (whitespace, identifiers, syntax)").optional()).option("minify-whitespace", z.boolean().describe("Minify whitespace in the output to reduce file size").optional()).option("minify-identifiers", z.boolean().describe("Minify identifiers by renaming variables to shorter names").optional()).option("minify-syntax", z.boolean().describe("Minify syntax by optimizing code structure").optional()).option("watch", z.boolean().describe("Watch for file changes and rebuild automatically").optional()).option("clean", z.boolean().describe("Clean the output directory before building").default(true)).option("silent", z.boolean().describe("Disable logging during the build process").alias("q").optional()).option("splitting", z.boolean().describe("Enable code splitting").default(true, "enabled by default for ESM format")).option("conditions", z.array(z.string()).describe("Package.json export conditions for import resolution").optional()).option("target", z.string().choices(["bun", "node", "browser"]).describe("Target environment for the bundle").alias("t").default("node")).option("external", z.array(z.string()).describe("External packages that should not be bundled").optional()).option("no-external", z.array(z.string()).describe("Packages that should be bundled even if listed in external").optional()).option("packages", z.string().choices(["bundle", "external"]).describe('Bundle all dependencies or externalize all dependencies. Use "bundle" to include all deps in output, or "external" to exclude all deps').optional()).option("shims", z.boolean().describe("Enable shims for Node.js globals and ESM/CJS interoperability").optional()).option("report", z.object({
|
|
263
263
|
gzip: z.boolean().describe("Enable gzip compression size calculation").default(true),
|
|
264
264
|
brotli: z.boolean().describe("Enable brotli compression size calculation").optional(),
|
|
265
265
|
"max-bundle-size": z.number().describe("Maximum bundle size in bytes. Will warn if exceeded").optional()
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BuildContext, BuildMeta, BuildOptions, BuildOutputFile, BuildResult, BunupPlugin, DefineConfigItem, DefineWorkspaceItem, WithOptional, WithRequired } from "./shared/bunup-
|
|
1
|
+
import { BuildContext, BuildMeta, BuildOptions, BuildOutputFile, BuildResult, BunupPlugin, DefineConfigItem, DefineWorkspaceItem, WithOptional, WithRequired } from "./shared/bunup-a77gk35v";
|
|
2
2
|
declare function build(userOptions: Partial<BuildOptions>, rootDir?: string): Promise<BuildResult>;
|
|
3
3
|
declare function defineConfig(options: DefineConfigItem | WithRequired<DefineConfigItem, "name">[]): DefineConfigItem | WithRequired<DefineConfigItem, "name">[];
|
|
4
4
|
declare function defineWorkspace(options: WithOptional<DefineWorkspaceItem, "config">[], sharedOptions?: Partial<DefineConfigItem>): DefineWorkspaceItem[];
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
build
|
|
4
|
-
} from "./shared/bunup-
|
|
5
|
-
import"./shared/bunup-
|
|
4
|
+
} from "./shared/bunup-0rejsmya.js";
|
|
5
|
+
import"./shared/bunup-qb65sm3k.js";
|
|
6
6
|
// packages/bunup/src/define.ts
|
|
7
7
|
function defineConfig(options) {
|
|
8
8
|
return options;
|
package/dist/plugins.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Arrayable, BuildOptions, BunupPlugin, BunupPluginHooks, exports, injectStyles, unused } from "./shared/bunup-
|
|
1
|
+
import { Arrayable, BuildOptions, BunupPlugin, BunupPluginHooks, exports, injectStyles, unused } from "./shared/bunup-a77gk35v";
|
|
2
2
|
type CopyOptions = {
|
|
3
3
|
/** Whether to follow symbolic links when copying files. */
|
|
4
4
|
followSymlinks?: boolean;
|
package/dist/plugins.js
CHANGED
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
parseErrorMessage,
|
|
21
21
|
shims,
|
|
22
22
|
unused
|
|
23
|
-
} from "./bunup-
|
|
23
|
+
} from "./bunup-qb65sm3k.js";
|
|
24
24
|
|
|
25
25
|
// packages/bunup/src/loaders.ts
|
|
26
26
|
import path from "path";
|
|
@@ -32,10 +32,16 @@ async function processLoadedConfigs(config, cwd, filter) {
|
|
|
32
32
|
})) : [
|
|
33
33
|
{
|
|
34
34
|
rootDir: cwd,
|
|
35
|
-
options: config
|
|
35
|
+
options: filterConfigArrayByName(config, filter)
|
|
36
36
|
}
|
|
37
37
|
];
|
|
38
38
|
}
|
|
39
|
+
function filterConfigArrayByName(config, filter) {
|
|
40
|
+
if (Array.isArray(config) && filter) {
|
|
41
|
+
return config.filter((c) => c.name ? filter.includes(c.name) : true);
|
|
42
|
+
}
|
|
43
|
+
return config;
|
|
44
|
+
}
|
|
39
45
|
function setOrSuffixField(objectOrArray, field, prefix) {
|
|
40
46
|
const addPrefix = (obj) => {
|
|
41
47
|
const existingValue = obj[field];
|
|
@@ -176,6 +182,17 @@ function matchesPattern(path2, pattern) {
|
|
|
176
182
|
}
|
|
177
183
|
function isExternalFromPackageJson(path2, options, packageJson) {
|
|
178
184
|
const packageDepsPatterns = getPackageDepsPatterns(packageJson);
|
|
185
|
+
if (options.packages === "bundle") {
|
|
186
|
+
const explicitlyExternal = options.external?.some((pattern) => matchesPattern(path2, pattern));
|
|
187
|
+
return explicitlyExternal;
|
|
188
|
+
}
|
|
189
|
+
if (options.packages === "external") {
|
|
190
|
+
const explicitlyBundled = options.noExternal?.some((pattern) => matchesPattern(path2, pattern));
|
|
191
|
+
if (explicitlyBundled) {
|
|
192
|
+
return false;
|
|
193
|
+
}
|
|
194
|
+
return packageDepsPatterns.some((pattern) => pattern.test(path2));
|
|
195
|
+
}
|
|
179
196
|
const matchesExternalPattern = packageDepsPatterns.some((pattern) => pattern.test(path2)) || options.external?.some((pattern) => matchesPattern(path2, pattern));
|
|
180
197
|
const isExcludedFromExternal = options.noExternal?.some((pattern) => matchesPattern(path2, pattern));
|
|
181
198
|
return matchesExternalPattern && !isExcludedFromExternal;
|
|
@@ -487,9 +504,10 @@ async function build(userOptions, rootDir = process.cwd()) {
|
|
|
487
504
|
env: resolvedEnv,
|
|
488
505
|
ignoreDCEAnnotations: options.ignoreDCEAnnotations,
|
|
489
506
|
emitDCEAnnotations: options.emitDCEAnnotations,
|
|
507
|
+
packages: options.packages,
|
|
490
508
|
jsx: options.jsx,
|
|
491
509
|
compile: options.compile,
|
|
492
|
-
outdir: options.compile ? options.outDir : undefined,
|
|
510
|
+
outdir: options.compile ? path3.resolve(rootDir, options.outDir) : undefined,
|
|
493
511
|
throw: false,
|
|
494
512
|
plugins: bunPlugins,
|
|
495
513
|
tsconfig: options.preferredTsconfig ? path3.resolve(rootDir, options.preferredTsconfig) : undefined
|
|
@@ -510,7 +528,8 @@ async function build(userOptions, rootDir = process.cwd()) {
|
|
|
510
528
|
if (options.compile) {
|
|
511
529
|
const fullPath2 = file.path;
|
|
512
530
|
const pathRelativeToRootDir2 = path3.relative(rootDir, fullPath2);
|
|
513
|
-
const
|
|
531
|
+
const absoluteOutDir = path3.resolve(rootDir, options.outDir);
|
|
532
|
+
const pathRelativeToOutdir2 = path3.relative(absoluteOutDir, fullPath2);
|
|
514
533
|
buildOutputFiles.push({
|
|
515
534
|
fullPath: fullPath2,
|
|
516
535
|
pathRelativeToRootDir: pathRelativeToRootDir2,
|
|
@@ -447,6 +447,28 @@ interface BuildOptions {
|
|
|
447
447
|
*/
|
|
448
448
|
noExternal?: External;
|
|
449
449
|
/**
|
|
450
|
+
* Controls whether to bundle or externalize all dependencies.
|
|
451
|
+
*
|
|
452
|
+
* This option provides a convenient way to handle all dependencies at once:
|
|
453
|
+
* - `"bundle"`: Bundle all dependencies into the output (overrides automatic external behavior)
|
|
454
|
+
* - `"external"`: Externalize all dependencies (treats all as external)
|
|
455
|
+
*
|
|
456
|
+
* This option works alongside `external` and `noExternal`:
|
|
457
|
+
* - When set to `"bundle"`, all dependencies are bundled by default, but `external` can still mark specific packages as external
|
|
458
|
+
* - When set to `"external"`, all dependencies are externalized by default, but `noExternal` can still bundle specific packages
|
|
459
|
+
*
|
|
460
|
+
* @see https://bunup.dev/docs/guide/options#managing-dependencies-in-your-bundle
|
|
461
|
+
*
|
|
462
|
+
* @example
|
|
463
|
+
* // Bundle all dependencies
|
|
464
|
+
* packages: "bundle"
|
|
465
|
+
*
|
|
466
|
+
* @example
|
|
467
|
+
* // Externalize all dependencies
|
|
468
|
+
* packages: "external"
|
|
469
|
+
*/
|
|
470
|
+
packages?: "bundle" | "external";
|
|
471
|
+
/**
|
|
450
472
|
* The target environment for the bundle.
|
|
451
473
|
* Can be 'browser', 'bun', 'node', etc.
|
|
452
474
|
* Defaults to 'node' if not specified.
|
|
@@ -926,7 +926,7 @@ function unused(options = {}) {
|
|
|
926
926
|
hooks: {
|
|
927
927
|
onBuildDone: async (ctx) => {
|
|
928
928
|
const { options: buildOptions, meta, files } = ctx;
|
|
929
|
-
if (buildOptions.watch)
|
|
929
|
+
if (buildOptions.watch || buildOptions.compile)
|
|
930
930
|
return;
|
|
931
931
|
const usedDeps = await collectUsedDependencies(files, buildOptions);
|
|
932
932
|
const pkgDeps = extractPackageDependencies(meta.packageJson.data?.dependencies);
|