
































@@ -23,6 +23,11 @@ type InputOptionsReturn = InputOptionsFactory extends (
2323 ? Return
2424 : never;
2525type OnLogFunction = InputOptionsArg extends { onLog?: infer OnLog } ? NonNullable<OnLog> : never;
26+type ExternalOptionFunction = (
27+id: string,
28+parentId: string | undefined,
29+isResolved: boolean,
30+) => boolean | null | undefined;
26312732const env = {
2833NODE_ENV: "production",
@@ -38,12 +43,37 @@ function normalizedLogHaystack(log: { message?: string; id?: string; importer?:
3843return [log.message, log.id, log.importer].filter(Boolean).join("\n").replaceAll("\\", "/");
3944}
404546+function matchesExternalOption(
47+option: unknown,
48+id: string,
49+parentId: string | undefined,
50+isResolved: boolean,
51+): boolean {
52+if (!option) {
53+return false;
54+}
55+if (typeof option === "function") {
56+return (option as ExternalOptionFunction)(id, parentId, isResolved) === true;
57+}
58+if (typeof option === "string") {
59+return option === id;
60+}
61+if (option instanceof RegExp) {
62+return option.test(id);
63+}
64+if (Array.isArray(option)) {
65+return option.some((entry) => matchesExternalOption(entry, id, parentId, isResolved));
66+}
67+return false;
68+}
69+4170function buildInputOptions(options: InputOptionsArg): InputOptionsReturn {
4271if (process.env.OPENCLAW_BUILD_VERBOSE === "1") {
4372return undefined;
4473}
45744675const previousOnLog = typeof options.onLog === "function" ? options.onLog : undefined;
76+const previousExternal = (options as { external?: unknown }).external;
47774878function isSuppressedLog(log: {
4979code?: string;
@@ -66,6 +96,12 @@ function buildInputOptions(options: InputOptionsArg): InputOptionsReturn {
66966797return {
6898 ...options,
99+external(id: string, parentId: string | undefined, isResolved: boolean) {
100+return (
101+shouldNeverBundleDependency(id) ||
102+matchesExternalOption(previousExternal, id, parentId, isResolved)
103+);
104+},
69105onLog(...args: Parameters<OnLogFunction>) {
70106const [level, log, defaultHandler] = args;
71107if (isSuppressedLog(log)) {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。