Skip to content

Upgrading ts-loader 4 to 5

Breaking4.5.0 → 5.4.5Breaking1Platform1New4Changed2Fixed4Other2

BreakingUpgrade verdict

1 breaking change and a platform requirement change.

  • Declaration files (.d.ts) are now written to the correct output location, which may differ from where earlier versions put them.
  • The package now declares that it needs TypeScript installed alongside it.
2 items need code or config changes
Breaking1
Fixes the incorrect output path for declaration files, a breaking change.
Platform1
Lists typescript as a peer dependency.

Generated by DepDelta from published .d.ts files. Not mixed with prose notes.

  • changed: function makeAfterCompile(instance: TSInstance, configFilePath: string | undefined): (compilation: WebpackCompilation, callback: () => void) => void → function makeAfterCompile(instance: TSInstance, configFilePath: string | undefined): (compilation: webpack.compilation.Compilation, callback: () => void) => void
  • changed: function getConfigFile(compiler: typeof typescript, colors: Chalk, loader: Webpack, loaderOptions: LoaderOptions, compilerCompatible: boolean, log: logger.Logger, compilerDetailsLogMessage: string): { configFilePath: string | undefined; configFile: ConfigFile; configFileError: WebpackError | undefined } → function getConfigFile(compiler: typeof typescript, colors: Chalk, loader: webpack.loader.LoaderContext, loaderOptions: LoaderOptions, compilerCompatible: boolean, log: logger.Logger, compilerDetailsLogMessage: string): { configFilePath: string | undefined; configFile: ConfigFile; configFileError: WebpackError | undefined }
  • removed: const ModuleKindCommonJs = 1
  • removed: const ScriptTargetES2015 = 2
  • added: const extensionRegex: RegExp
  • added: const jsonRegex: RegExp
  • added: const tsxRegex: RegExp
  • changed: function loader(this: Webpack, contents: string): void → function loader(this: webpack.loader.LoaderContext, contents: string): void
  • changed: function getTypeScriptInstance(loaderOptions: LoaderOptions, loader: Webpack): { instance?: TSInstance; error?: WebpackError } → function getTypeScriptInstance(loaderOptions: LoaderOptions, loader: webpack.loader.LoaderContext): { instance?: TSInstance; error?: WebpackError }
  • removed: call AsyncCallback(err: Error | WebpackError | null, source?: string, map?: string): void
  • removed: call ResolveSync(context: string | undefined, path: string, moduleName: string): string
  • removed: interface AsyncCallback
  • removed: interface Compiler
  • removed: interface Resolve
  • removed: interface ResolveSync
  • removed: interface SourceMap
  • removed: interface Watcher
  • removed: interface Webpack
  • removed: interface WebpackCompilation
  • removed: interface WebpackCompiler
  • removed: interface WebpackNodeWatchFileSystem
  • removed: method Watcher.getTimes(): { [filePath: string]: number }
  • removed: method WebpackCompiler.isChild(): boolean
  • removed: property Compiler.hooks: any
  • removed: property Compiler.options: { resolve: Resolve }
  • removed: property Compiler.plugin: (name: string, callback: Function) => void
  • removed: property Resolve.alias?: { [key: string]: string }
  • removed: property Resolve.extensions?: string[]
  • removed: property Resolve.fallback?: string | string[]
  • removed: property Resolve.modulesDirectories?: string[]
  • removed: property Resolve.packageAlias?: (string | string[])[]
  • removed: property Resolve.packageMains?: (string | string[])[]
  • removed: property Resolve.root?: string | string[]
  • removed: property Resolve.unsafeCache?: RegExp | RegExp[] | boolean
  • removed: property SourceMap.file: string
  • removed: property SourceMap.sources: any[]
  • removed: property SourceMap.sourcesContent: string[]
  • removed: property Webpack._compiler: Compiler
  • removed: property Webpack._module: WebpackModule
  • removed: property Webpack.addContextDependency: (directory: string) => void
  • removed: property Webpack.addDependency: (file: string) => void
  • removed: property Webpack.async: () => AsyncCallback
  • removed: property Webpack.cacheable: () => void
  • removed: property Webpack.clearDependencies: () => void
  • removed: property Webpack.context: string
  • removed: property Webpack.data: Object
  • removed: property Webpack.emitError: (message: string) => void
  • removed: property Webpack.emitFile: (fileName: string, text: string) => void
  • removed: property Webpack.emitWarning: (message: string) => void
  • removed: property Webpack.query: string
  • removed: property Webpack.request: string
  • removed: property Webpack.resolve: (context: string, request: string, callback: (err: Error, result: string) => void) => void
  • removed: property Webpack.resolveSync: (context: string, request: string) => string
  • removed: property Webpack.resource: string
  • removed: property Webpack.resourcePath: string
  • removed: property Webpack.resourceQuery: string
  • removed: property WebpackCompilation.assets: { [index: string]: { size: () => number; source: () => string } }
  • removed: property WebpackCompilation.compiler: WebpackCompiler
  • removed: property WebpackCompilation.errors: WebpackError[]
  • removed: property WebpackCompilation.modules: WebpackModule[]
  • removed: property WebpackCompiler.context: string
  • removed: property WebpackCompiler.fileTimestamps: Map<string, number>
  • removed: property WebpackCompiler.watchFileSystem: WebpackNodeWatchFileSystem
  • removed: property WebpackNodeWatchFileSystem.watcher?: Watcher
  • removed: property WebpackNodeWatchFileSystem.wfs?: { watcher: Watcher }
  • changed: property LoaderOptions.getCustomTransformers?: string | (() => typescript.CustomTransformers | undefined) → property LoaderOptions.getCustomTransformers: string | ((program: typescript.Program) => typescript.CustomTransformers | undefined)
  • added: property LoaderOptions.experimentalFileCaching: boolean
  • added: property LoaderOptions.projectReferences: boolean
  • added: property LoaderOptions.resolveModuleName: CustomResolveModuleName
  • added: property LoaderOptions.resolveTypeReferenceDirective: CustomResolveTypeReferenceDirective
  • added: property TSFile.projectReference?: { project?: typescript.ResolvedProjectReference; outputFileName?: string }
  • added: property TSInstance.appendTsTsxSuffixesIfRequired: (filePath: string) => string
  • added: property TSInstance.projectsMissingSourceMaps?: Set<string>
  • added: type CustomResolveModuleName = (moduleName: string, containingFile: string, compilerOptions: typescript.CompilerOptions, moduleResolutionHost: typescript.ModuleResolutionHost, parentResolver…
  • added: type CustomResolveTypeReferenceDirective = (typeDirectiveName: string, containingFile: string, compilerOptions: typescript.CompilerOptions, moduleResolutionHost: typescript.ModuleResolutionHost, parentR…
  • added: type ResolveModuleName = (moduleName: string, containingFile: string, compilerOptions: typescript.CompilerOptions, moduleResolutionHost: typescript.ModuleResolutionHost) => typescript.…
  • added: type ResolveSync = (context: string | undefined, path: string, moduleName: string) => string
  • added: enum LogLevel
  • added: member LogLevel.ERROR = 3
  • added: member LogLevel.INFO = 1
  • added: member LogLevel.WARN = 2
  • changed: function makeResolver(options: { resolve: Resolve }): ResolveSync → function makeResolver(options: webpack.Configuration): ResolveSync
  • changed: function makeServicesHost(scriptRegex: RegExp, log: logger.Logger, loader: Webpack, instance: TSInstance): typescript.LanguageServiceHost → function makeServicesHost(scriptRegex: RegExp, log: logger.Logger, loader: webpack.loader.LoaderContext, instance: TSInstance, enableFileCaching: boolean, projectReferences?: ReadonlyArray<typescript.ProjectReference>): ServiceHostWhichMayBeCacheable
  • changed: function makeWatchHost(scriptRegex: RegExp, log: logger.Logger, loader: Webpack, instance: TSInstance, appendTsSuffixTo: RegExp[], appendTsxSuffixTo: RegExp[]): WatchHost → function makeWatchHost(scriptRegex: RegExp, log: logger.Logger, loader: webpack.loader.LoaderContext, instance: TSInstance, projectReferences?: ReadonlyArray<typescript.ProjectReference>): WatchHost
  • added: interface ServiceHostWhichMayBeCacheable
  • added: property ServiceHostWhichMayBeCacheable.clearCache: Action | null
  • added: property ServiceHostWhichMayBeCacheable.servicesHost: typescript.LanguageServiceHost
  • added: type Action = () => void
  • changed: function appendSuffixIfMatch(patterns: RegExp[], path: string, suffix: string): string → function appendSuffixIfMatch(patterns: RegExp[], filePath: string, suffix: string): string
  • changed: function appendSuffixesIfMatch(suffixDict: { [suffix: string]: RegExp[] }, path: string): string → function appendSuffixesIfMatch(suffixDict: { [suffix: string]: RegExp[] }, filePath: string): string
  • added: function ensureProgram(instance: TSInstance): typescript.Program | undefined
  • added: function getAndCacheOutputJSFileName(inputFileName: string, projectReference: typescript.ResolvedProjectReference, instance: TSInstance): string
  • added: function getAndCacheProjectReference(filePath: string, instance: TSInstance): typescript.ResolvedProjectReference | undefined
  • added: function isUsingProjectReferences(instance: TSInstance): boolean
  • added: function supportsProjectReferences(instance: TSInstance): true | undefined
  • added: function validateSourceMapOncePerProject(instance: TSInstance, loader: webpack.loader.LoaderContext, jsFileName: string, project: typescript.ResolvedProjectReference): void
  • changed: function makeWatchRun(instance: TSInstance): (compiler: WebpackCompiler, callback: () => void) => void → function makeWatchRun(instance: TSInstance): (compiler: webpack.Compiler, callback: () => void) => void