diff --git a/CHANGELOG.md b/CHANGELOG.md index 96a3e42a4..122e0dc5a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## v8.1.0 +* [feat: remove top-level typescript import statements](https://github.com/TypeStrong/ts-loader/pull/1259) - thanks @ulivz + ## v8.0.18 * [Perf: Optimize fileExists callback path](https://github.com/TypeStrong/ts-loader/issues/1266) - thanks @berickson1 diff --git a/package.json b/package.json index b9760fb33..55ad0e6e8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ts-loader", - "version": "8.0.18", + "version": "8.1.0", "description": "TypeScript loader for webpack", "main": "index.js", "types": "dist", diff --git a/src/after-compile.ts b/src/after-compile.ts index 03fa8543a..81c21d4aa 100644 --- a/src/after-compile.ts +++ b/src/after-compile.ts @@ -1,5 +1,5 @@ import * as path from 'path'; -import * as ts from 'typescript'; +import type * as ts from 'typescript'; import * as webpack from 'webpack'; import * as constants from './constants'; diff --git a/src/compilerSetup.ts b/src/compilerSetup.ts index 3b53cc11c..68bb3a970 100644 --- a/src/compilerSetup.ts +++ b/src/compilerSetup.ts @@ -1,5 +1,5 @@ import * as semver from 'semver'; -import * as typescript from 'typescript'; +import type * as typescript from 'typescript'; import { LoaderOptions } from './interfaces'; import * as logger from './logger'; @@ -52,7 +52,8 @@ export function getCompiler(loaderOptions: LoaderOptions, log: logger.Logger) { } export function getCompilerOptions( - configParseResult: typescript.ParsedCommandLine + configParseResult: typescript.ParsedCommandLine, + compiler: typeof typescript ) { const compilerOptions = Object.assign({}, configParseResult.options, { skipLibCheck: true, @@ -63,9 +64,9 @@ export function getCompilerOptions( if ( compilerOptions.module === undefined && compilerOptions.target !== undefined && - compilerOptions.target < typescript.ScriptTarget.ES2015 + compilerOptions.target < compiler.ScriptTarget.ES2015 ) { - compilerOptions.module = typescript.ModuleKind.CommonJS; + compilerOptions.module = compiler.ModuleKind.CommonJS; } if (configParseResult.options.configFile) { diff --git a/src/config.ts b/src/config.ts index caeb6bf0e..ff14055b5 100644 --- a/src/config.ts +++ b/src/config.ts @@ -1,6 +1,6 @@ import { Chalk } from 'chalk'; import * as path from 'path'; -import * as typescript from 'typescript'; +import type * as typescript from 'typescript'; import * as webpack from 'webpack'; import { getCompilerOptions } from './compilerSetup'; @@ -187,7 +187,7 @@ export function getParsedCommandLine( extendedConfigCache ); if (result) { - result.options = getCompilerOptions(result); + result.options = getCompilerOptions(result, compiler); } return result; } diff --git a/src/index.ts b/src/index.ts index 95e53e301..ac3502a2c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,7 +1,7 @@ import * as crypto from 'crypto'; import * as loaderUtils from 'loader-utils'; import * as path from 'path'; -import * as typescript from 'typescript'; +import type * as typescript from 'typescript'; import * as webpack from 'webpack'; import * as constants from './constants'; diff --git a/src/instances.ts b/src/instances.ts index 3d7c299c5..aaa36b792 100644 --- a/src/instances.ts +++ b/src/instances.ts @@ -1,7 +1,7 @@ import * as chalk from 'chalk'; import * as fs from 'fs'; import * as path from 'path'; -import * as typescript from 'typescript'; +import type * as typescript from 'typescript'; import * as webpack from 'webpack'; import { makeAfterCompile } from './after-compile'; @@ -202,7 +202,7 @@ function successfulTypeScriptInstance( }; } - const compilerOptions = getCompilerOptions(configParseResult); + const compilerOptions = getCompilerOptions(configParseResult, compiler); const rootFileNames = new Set(); const files: TSFiles = new Map(); const otherFiles: TSFiles = new Map(); diff --git a/src/interfaces.ts b/src/interfaces.ts index fb7643e44..f2bf5a4b5 100644 --- a/src/interfaces.ts +++ b/src/interfaces.ts @@ -1,4 +1,4 @@ -import * as typescript from 'typescript'; +import type * as typescript from 'typescript'; import { Chalk } from 'chalk'; import * as logger from './logger'; diff --git a/src/servicesHost.ts b/src/servicesHost.ts index 2447ba419..d44dce8b7 100644 --- a/src/servicesHost.ts +++ b/src/servicesHost.ts @@ -1,5 +1,5 @@ import * as path from 'path'; -import * as typescript from 'typescript'; +import type * as typescript from 'typescript'; import * as webpack from 'webpack'; import { getParsedCommandLine } from './config'; import * as constants from './constants'; diff --git a/src/utils.ts b/src/utils.ts index 4974619c0..1b9691e9f 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -2,7 +2,7 @@ import { Chalk } from 'chalk'; import * as fs from 'fs'; import * as micromatch from 'micromatch'; import * as path from 'path'; -import * as typescript from 'typescript'; +import type * as typescript from 'typescript'; import constants = require('./constants'); import {