Skip to content

Commit 3c13118

Browse files
committedJul 9, 2024
Always pre-set moduleResolution: bundler if tsconfig.json
1 parent 34be850 commit 3c13118

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed
 

‎packages/knip/src/PrincipalFactory.ts

+4-3
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ type Principals = Set<Principal>;
1111

1212
export type PrincipalOptions = {
1313
cwd: string;
14+
isFile: boolean;
1415
compilerOptions: ts.CompilerOptions;
1516
paths: Paths;
1617
compilers: [SyncCompilers, AsyncCompilers];
@@ -47,8 +48,9 @@ export class PrincipalFactory {
4748
principals: Principals = new Set();
4849

4950
public getPrincipal(options: PrincipalOptions) {
50-
const { cwd, compilerOptions, paths, pkgName, isIsolateWorkspaces, compilers } = options;
51+
const { cwd, compilerOptions, isFile, paths, pkgName, isIsolateWorkspaces, compilers } = options;
5152
options.compilerOptions = mergePaths(cwd, compilerOptions, paths);
53+
if (isFile) compilerOptions.moduleResolution ??= ts.ModuleResolutionKind.Bundler;
5254
const principal = this.findReusablePrincipal(compilerOptions);
5355
if (!isIsolateWorkspaces && principal) {
5456
this.linkPrincipal(principal, cwd, compilerOptions, pkgName, compilers);
@@ -64,7 +66,6 @@ export class PrincipalFactory {
6466
const workspacePaths = compilerOptions?.paths ? Object.keys(compilerOptions.paths) : [];
6567
const principal = Array.from(this.principals).find(principal => {
6668
if (compilerOptions.pathsBasePath && principal.principal.compilerOptions.pathsBasePath) return false;
67-
if (compilerOptions.moduleResolution !== principal.principal.compilerOptions.moduleResolution) return false;
6869
if (compilerOptions.baseUrl === principal.principal.compilerOptions.baseUrl) {
6970
return workspacePaths.every(p => !principal.pathKeys.has(p));
7071
}
@@ -82,7 +83,7 @@ export class PrincipalFactory {
8283
) {
8384
const { pathsBasePath, paths } = compilerOptions;
8485
if (pathsBasePath) principal.principal.compilerOptions.pathsBasePath = pathsBasePath;
85-
principal.principal.compilerOptions.moduleResolution ??= ts.ModuleResolutionKind.Bundler;
86+
principal.principal.compilerOptions.moduleResolution ??= compilerOptions.moduleResolution;
8687
for (const p of Object.keys(paths ?? {})) principal.pathKeys.add(p);
8788
principal.principal.addPaths(paths);
8889
principal.principal.addCompilers(compilers);

‎packages/knip/src/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ export const main = async (unresolvedConfiguration: CommandLineOptions) => {
123123
const principal = factory.getPrincipal({
124124
cwd: dir,
125125
paths: config.paths,
126+
isFile,
126127
compilerOptions,
127128
compilers,
128129
pkgName,

0 commit comments

Comments
 (0)