ts-loader
Advanced tools
Comparing version 9.3.1 to 9.4.0
# Changelog | ||
## v9.4.0 | ||
* [Add Support for Resolving `.cjs`, `.mjs`, `.cts` and `.mts` Files](https://github.com/TypeStrong/ts-loader/pull/1503) [#1503] - thanks @manuth | ||
## v9.3.1 | ||
@@ -4,0 +8,0 @@ |
@@ -9,2 +9,3 @@ export declare const EOL: string; | ||
export declare const tsTsxRegex: RegExp; | ||
export declare const declarationRegex: RegExp; | ||
export declare const dtsDtsxOrDtsDtsxMapRegex: RegExp; | ||
@@ -11,0 +12,0 @@ export declare const dtsTsTsxRegex: RegExp; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.nodeModules = exports.jsonRegex = exports.jsJsxMap = exports.jsJsx = exports.tsTsxJsJsxRegex = exports.dtsTsTsxJsJsxRegex = exports.dtsTsTsxRegex = exports.dtsDtsxOrDtsDtsxMapRegex = exports.tsTsxRegex = exports.tsxRegex = exports.extensionRegex = exports.LineFeedCode = exports.CarriageReturnLineFeedCode = exports.LineFeed = exports.CarriageReturnLineFeed = exports.EOL = void 0; | ||
exports.nodeModules = exports.jsonRegex = exports.jsJsxMap = exports.jsJsx = exports.tsTsxJsJsxRegex = exports.dtsTsTsxJsJsxRegex = exports.dtsTsTsxRegex = exports.dtsDtsxOrDtsDtsxMapRegex = exports.declarationRegex = exports.tsTsxRegex = exports.tsxRegex = exports.extensionRegex = exports.LineFeedCode = exports.CarriageReturnLineFeedCode = exports.LineFeed = exports.CarriageReturnLineFeed = exports.EOL = void 0; | ||
const os = require("os"); | ||
@@ -12,11 +12,12 @@ exports.EOL = os.EOL; | ||
exports.tsxRegex = /\.tsx$/i; | ||
exports.tsTsxRegex = /\.ts(x?)$/i; | ||
exports.dtsDtsxOrDtsDtsxMapRegex = /\.d\.ts(x?)(\.map)?$/i; | ||
exports.dtsTsTsxRegex = /(\.d)?\.ts(x?)$/i; | ||
exports.dtsTsTsxJsJsxRegex = /((\.d)?\.ts(x?)|js(x?))$/i; | ||
exports.tsTsxJsJsxRegex = /\.tsx?$|\.jsx?$/i; | ||
exports.jsJsx = /\.js(x?)$/i; | ||
exports.jsJsxMap = /\.js(x?)\.map$/i; | ||
exports.tsTsxRegex = /\.([cm]?ts|tsx)$/i; | ||
exports.declarationRegex = /\.d\.([cm]?ts|tsx)$/i; | ||
exports.dtsDtsxOrDtsDtsxMapRegex = /\.d\.([cm]?ts|tsx)(\.map)?$/i; | ||
exports.dtsTsTsxRegex = /(\.d)?\.([cm]?ts|tsx)$/i; | ||
exports.dtsTsTsxJsJsxRegex = /((\.d)?\.([cm]?[tj]s|[tj]sx))$/i; | ||
exports.tsTsxJsJsxRegex = /\.([cm]?[tj]s|[tj]sx)$/i; | ||
exports.jsJsx = /\.([cm]?js|jsx)$/i; | ||
exports.jsJsxMap = /\.([cm]?js|jsx)\.map$/i; | ||
exports.jsonRegex = /\.json$/i; | ||
exports.nodeModules = /node_modules/i; | ||
//# sourceMappingURL=constants.js.map |
@@ -286,9 +286,9 @@ "use strict"; | ||
return instance.configParseResult.options.allowJs === true | ||
? /\.tsx?$|\.json$|\.jsx?$/i | ||
: /\.tsx?$|\.json$/i; | ||
? /\.([cm]?[tj]s|[tj]sx|json)$/i | ||
: /\.([cm]?ts|tsx|json)$/i; | ||
} | ||
// if allowJs is set then we should accept js(x) files | ||
return instance.configParseResult.options.allowJs === true | ||
? /\.tsx?$|\.jsx?$/i | ||
: /\.tsx?$/i; | ||
? /\.([cm]?[tj]s|[tj]sx)$/i | ||
: /\.([cm]?ts|tsx)$/i; | ||
} | ||
@@ -409,3 +409,3 @@ function reportTranspileErrors(instance, loader) { | ||
function getInputFileNameFromOutput(instance, filePath) { | ||
if (filePath.match(constants_1.tsTsxRegex) && !fileExtensionIs(filePath, '.d.ts')) { | ||
if (filePath.match(constants_1.tsTsxRegex) && !constants_1.declarationRegex.test(filePath)) { | ||
return undefined; | ||
@@ -412,0 +412,0 @@ } |
import type * as webpack from 'webpack'; | ||
export declare function makeResolver(options: webpack.WebpackOptionsNormalized): ResolveSync; | ||
export declare type ResolveSync = (context: string | undefined, path: string, moduleName: string) => string | false; | ||
export declare type ResolveSync = { | ||
(context: any, path: string, moduleName: string): string | false; | ||
(path: string, moduleName: string): string | false; | ||
}; | ||
//# sourceMappingURL=resolver.d.ts.map |
@@ -122,4 +122,4 @@ "use strict"; | ||
const resolveModuleName = makeResolveModuleName(compiler, compilerOptions, moduleResolutionHost, customResolveModuleName, instance); | ||
const resolveModuleNames = (moduleNames, containingFile, _reusedNames, redirectedReference) => { | ||
const resolvedModules = moduleNames.map(moduleName => resolveModule(resolveSync, resolveModuleName, appendTsTsxSuffixesIfRequired, scriptRegex, moduleName, containingFile, redirectedReference)); | ||
const resolveModuleNames = (moduleNames, containingFile, _reusedNames, redirectedReference, _, containingSourceFile) => { | ||
const resolvedModules = moduleNames.map(moduleName => resolveModule(resolveSync, resolveModuleName, appendTsTsxSuffixesIfRequired, scriptRegex, moduleName, containingFile, redirectedReference, containingSourceFile)); | ||
(0, utils_1.populateDependencyGraph)(resolvedModules, instance, containingFile); | ||
@@ -733,6 +733,6 @@ return resolvedModules; | ||
} | ||
function resolveModule(resolveSync, resolveModuleName, appendTsTsxSuffixesIfRequired, scriptRegex, moduleName, containingFile, redirectedReference) { | ||
function resolveModule(resolveSync, resolveModuleName, appendTsTsxSuffixesIfRequired, scriptRegex, moduleName, containingFile, redirectedReference, containingSourceFile) { | ||
let resolutionResult; | ||
try { | ||
const originalFileName = resolveSync(undefined, path.normalize(path.dirname(containingFile)), moduleName); | ||
const originalFileName = resolveSync(path.normalize(path.dirname(containingFile)), moduleName); | ||
if (originalFileName) { | ||
@@ -746,3 +746,3 @@ const resolvedFileName = appendTsTsxSuffixesIfRequired(originalFileName); | ||
catch (e) { } | ||
const tsResolution = resolveModuleName(moduleName, containingFile, redirectedReference); | ||
const tsResolution = resolveModuleName(moduleName, containingFile, redirectedReference, containingSourceFile); | ||
if (tsResolution.resolvedModule !== undefined) { | ||
@@ -769,3 +769,3 @@ const resolvedFileName = path.normalize(tsResolution.resolvedModule.resolvedFileName); | ||
} | ||
return (moduleName, containingFile, redirectedReference) => compiler.resolveModuleName(moduleName, containingFile, compilerOptions, moduleResolutionHost, instance.moduleResolutionCache, redirectedReference); | ||
return (moduleName, containingFileName, redirectedReference, containingFile) => compiler.resolveModuleName(moduleName, containingFileName, compilerOptions, moduleResolutionHost, instance.moduleResolutionCache, redirectedReference, containingFile === null || containingFile === void 0 ? void 0 : containingFile.impliedNodeFormat); | ||
} | ||
@@ -772,0 +772,0 @@ return (moduleName, containingFile) => customResolveModuleName(moduleName, containingFile, compilerOptions, moduleResolutionHost, compiler.resolveModuleName); |
{ | ||
"name": "ts-loader", | ||
"version": "9.3.1", | ||
"version": "9.4.0", | ||
"description": "TypeScript loader for webpack", | ||
@@ -96,3 +96,3 @@ "main": "index.js", | ||
"rimraf": "^2.6.2", | ||
"typescript": "^4.7.3", | ||
"typescript": "^4.8.2", | ||
"webpack": "^5.20.0", | ||
@@ -99,0 +99,0 @@ "webpack-cli": "^4.5.0" |
@@ -222,6 +222,10 @@ # TypeScript loader for webpack | ||
### Declarations (.d.ts) | ||
### Declaration Files (.d.ts) | ||
To output a built .d.ts file, you can set `"declaration": true` in your tsconfig, and use the [DeclarationBundlerPlugin](https://www.npmjs.com/package/declaration-bundler-webpack-plugin) in your webpack config. | ||
To output declaration files (.d.ts), you can set "declaration": true in your tsconfig and set "transpileOnly" to false. | ||
If you use ts-loader with "transpileOnly": true along with [fork-ts-checker-webpack-plugin](https://github.com/TypeStrong/fork-ts-checker-webpack-plugin), you will need to configure fork-ts-checker-webpack-plugin to output definition files, you can learn more on the plugin's documentation page: https://github.com/TypeStrong/fork-ts-checker-webpack-plugin#typescript-options | ||
To output a built .d.ts file, you can use the [DeclarationBundlerPlugin](https://www.npmjs.com/package/declaration-bundler-webpack-plugin) in your webpack config. | ||
### Failing the build on TypeScript compilation error | ||
@@ -228,0 +232,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
252142
3069
769