Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 11 additions & 2 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -632,6 +632,7 @@ function getTranspilationEmit(
reportDiagnostics: true,
fileName,
});
const module = loaderContext._module;

addDependenciesFromSolutionBuilder(instance, fileName, file =>
loaderContext.addDependency(path.resolve(file))
Expand All @@ -644,11 +645,19 @@ function getTranspilationEmit(
instance.loaderOptions,
instance.colors,
instance.compiler,
{ module: loaderContext._module },
{ module },
loaderContext.context
);

loaderContext._module.errors.push(...errors);
/**
* Since webpack 5, the `errors` property is deprecated,
* so we can check if some methods for reporting errors exist.
*/
if (!!module.addError) {
errors.forEach(error => module.addError(error));
} else {
module.errors.push(...errors);
}
}

return { outputText, sourceMapText };
Expand Down
22 changes: 20 additions & 2 deletions src/instances.ts
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,7 @@ function successfulTypeScriptInstance(
}
}

const module = loader._module;
const basePath = loaderOptions.context || path.dirname(configFilePath || '');
const configParseResult = getConfigParseResult(
compiler,
Expand All @@ -165,7 +166,15 @@ function successfulTypeScriptInstance(
loader.context
);

loader._module.errors.push(...errors);
/**
* Since webpack 5, the `errors` property is deprecated,
* so we can check if some methods for reporting errors exist.
*/
if (!!module.addError) {
errors.forEach(error => module.addError(error));
} else {
module.errors.push(...errors);
}

return {
error: makeError(
Expand Down Expand Up @@ -415,6 +424,7 @@ export function reportTranspileErrors(
if (!instance.reportTranspileErrors) {
return;
}
const module = loader._module;
instance.reportTranspileErrors = false;
// happypack does not have _module.errors - see https://github.com/TypeStrong/ts-loader/issues/336
if (!instance.loaderOptions.happyPackMode) {
Expand All @@ -431,7 +441,15 @@ export function reportTranspileErrors(
{ file: instance.configFilePath || 'tsconfig.json' },
loader.context
);
loader._module.errors.push(...solutionErrors, ...errors);
/**
* Since webpack 5, the `errors` property is deprecated,
* so we can check if some methods for reporting errors exist.
*/
if (!!module.addError) {
[...solutionErrors, ...errors].forEach(error => module.addError(error));
} else {
module.errors.push(...solutionErrors, ...errors);
}
}
}

Expand Down