X Tutup
Skip to content

Commit f822858

Browse files
authored
Fix issue leading to wrong bundle entry requires (#1332)
* Fix issue leading to wrong bundle entry requires * Resolve bundle entry module from project root instead of source directory * Use TS to figure out actual entry point filename
1 parent 7f1d4a5 commit f822858

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

src/transpilation/bundle.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { CompilerOptions } from "../CompilerOptions";
55
import { escapeString, tstlHeader } from "../LuaPrinter";
66
import { cast, formatPathToLuaPath, isNonNull, trimExtension } from "../utils";
77
import { couldNotFindBundleEntryPoint } from "./diagnostics";
8-
import { getEmitOutDir, getEmitPathRelativeToOutDir, getSourceDir } from "./transpiler";
8+
import { getEmitOutDir, getEmitPathRelativeToOutDir, getProjectRoot } from "./transpiler";
99
import { EmitFile, ProcessedFile } from "./utils";
1010

1111
const createModulePath = (pathToResolve: string, program: ts.Program) =>
@@ -85,10 +85,12 @@ export function getBundleResult(program: ts.Program, files: ProcessedFile[]): [t
8585
const entryModule = cast(options.luaBundleEntry, isNonNull);
8686

8787
// Resolve project settings relative to project file.
88-
const resolvedEntryModule = path.resolve(getSourceDir(program), entryModule);
88+
const resolvedEntryModule = path.resolve(getProjectRoot(program), entryModule);
8989
const outputPath = path.resolve(getEmitOutDir(program), bundleFile);
90+
const entryModuleFilePath =
91+
program.getSourceFile(entryModule)?.fileName ?? program.getSourceFile(resolvedEntryModule)?.fileName;
9092

91-
if (program.getSourceFile(resolvedEntryModule) === undefined && program.getSourceFile(entryModule) === undefined) {
93+
if (entryModuleFilePath === undefined) {
9294
diagnostics.push(couldNotFindBundleEntryPoint(entryModule));
9395
}
9496

@@ -99,7 +101,7 @@ export function getBundleResult(program: ts.Program, files: ProcessedFile[]): [t
99101
const moduleTable = createModuleTableNode(moduleTableEntries);
100102

101103
// return require("<entry module path>")
102-
const entryPoint = `return require(${createModulePath(entryModule, program)}, ...)\n`;
104+
const entryPoint = `return require(${createModulePath(entryModuleFilePath ?? entryModule, program)}, ...)\n`;
103105

104106
const footers: string[] = [];
105107
if (options.sourceMapTraceback) {

0 commit comments

Comments
 (0)
X Tutup