






















@@ -434,19 +434,20 @@ function resolveSafePackageEntry(params: {
434434return { relativePath: path.relative(params.packageDir, absolutePath).replace(/\\/g, "/") };
435435}
436436437-function resolveExistingPackageEntrySource(params: {
437+function resolveOptionalExistingPackageEntrySource(params: {
438438packageDir: string;
439439packageRootRealPath?: string;
440440entryPath: string;
441441sourceLabel: string;
442442diagnostics: PluginDiagnostic[];
443443rejectHardlinks?: boolean;
444-}): string | null {
444+}): { status: "missing" } | { status: "invalid" } | { status: "resolved"; source: string } {
445445const source = path.resolve(params.packageDir, params.entryPath);
446446if (!fs.existsSync(source)) {
447-return null;
447+return { status: "missing" };
448448}
449-return resolvePackageEntrySource(params);
449+const resolved = resolvePackageEntrySource(params);
450+return resolved ? { status: "resolved", source: resolved } : { status: "invalid" };
450451}
451452452453function resolvePackageRuntimeEntrySource(params: {
@@ -499,7 +500,7 @@ function resolvePackageRuntimeEntrySource(params: {
499500if (shouldInferBuiltRuntimeEntry(params.origin)) {
500501const builtEntryCandidates = listBuiltRuntimeEntryCandidates(safeEntry.relativePath);
501502for (const candidate of builtEntryCandidates) {
502-const runtimeSource = resolveExistingPackageEntrySource({
503+const runtimeSource = resolveOptionalExistingPackageEntrySource({
503504packageDir: params.packageDir,
504505 ...(params.packageRootRealPath !== undefined
505506 ? { packageRootRealPath: params.packageRootRealPath }
@@ -509,8 +510,11 @@ function resolvePackageRuntimeEntrySource(params: {
509510diagnostics: params.diagnostics,
510511rejectHardlinks: params.rejectHardlinks,
511512});
512-if (runtimeSource) {
513-return runtimeSource;
513+if (runtimeSource.status === "resolved") {
514+return runtimeSource.source;
515+}
516+if (runtimeSource.status === "invalid") {
517+return null;
514518}
515519}
516520if (
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。