From 0f10d10bc08eba3c076fb86149d0cc3a06a8e734 Mon Sep 17 00:00:00 2001 From: sunhao Date: Thu, 1 Aug 2019 11:48:44 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=20tsconfig=20?= =?UTF-8?q?=E6=89=A9=E5=B1=95=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- @types/index.d.ts | 5 +++++ src/config/webpack.base.config.ts | 24 ++++++++++++++---------- src/utils/compiler.webpack.ts | 2 +- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/@types/index.d.ts b/@types/index.d.ts index 61d9101..6c5e8e4 100644 --- a/@types/index.d.ts +++ b/@types/index.d.ts @@ -306,6 +306,11 @@ declare namespace build { */ babelrc?: TransformOptions + /** + * tsconfig PATH 配置 + */ + tsconfig?: string + /** * webpack 配置 */ diff --git a/src/config/webpack.base.config.ts b/src/config/webpack.base.config.ts index e1d3f68..0245bc0 100644 --- a/src/config/webpack.base.config.ts +++ b/src/config/webpack.base.config.ts @@ -20,6 +20,19 @@ export function getBaseConfig(options: ConfigOptions.options) { const mode = options.webpack.mode || 'production' const isProd = mode === 'production' const base = options.webpack ? options.webpack.base || {} : {} + const tsLoader: any = { + loader: 'ts-loader', + options: { + appendTsSuffixTo: [/\.vue$/], + transpileOnly: true, + happyPackMode: true, + } + } + if (options.tsconfig) { + tsLoader.options.context = options.rootDir + tsLoader.options.configFile = options.tsconfig + } + // consola.fatal(tsLoader) const babelLoder = { loader: 'babel-loader', @@ -96,16 +109,7 @@ export function getBaseConfig(options: ConfigOptions.options) { ] ).concat([ new VueLoaderPlugin(), - makeHappyPack('ts', [ - { - loader: 'ts-loader', - options: { - appendTsSuffixTo: [/\.vue$/], - transpileOnly: true, - happyPackMode: true - } - } - ]), + makeHappyPack('ts', [tsLoader]), makeHappyPack('babel', [babelLoder]) ]) }, diff --git a/src/utils/compiler.webpack.ts b/src/utils/compiler.webpack.ts index 9dfdcb9..f4d595b 100644 --- a/src/utils/compiler.webpack.ts +++ b/src/utils/compiler.webpack.ts @@ -349,7 +349,7 @@ function devCompilerExtensions(options: ConfigOptions.options, app?: Express) { const souce = mfs.readFileSync(resolve(outputPath, name), 'utf-8') extensions = requireFromString(souce).default } catch (error) { - consola.fatal('devCompilerExtensions', error) + consola.fatal('devCompilerExtensions', resolve(outputPath, name), error) return process.exit(1) } Object.keys(extensions).forEach(extensionKey => {