diff --git a/src/after-compile.ts b/src/after-compile.ts index 7cc284a08..2d24e0035 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 a670e4262..f70b04d2f 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 53c48423f..c86460ee9 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 170d03918..7432ceabb 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 c1da3e0a2..4632a81ab 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 {