1
1
const path = require ( 'path' )
2
2
3
3
module . exports = ( api , projectOptions ) => {
4
- const useThreads =
5
- process . env . NODE_ENV === 'production' && ! ! projectOptions . parallel
4
+ const useThreads = process . env . NODE_ENV === 'production' && ! ! projectOptions . parallel
6
5
7
6
const { semver, loadModule } = require ( '@vue/cli-shared-utils' )
8
7
const vue = loadModule ( 'vue' , api . service . context )
9
- const isVue3 = vue && semver . major ( vue . version ) === 3
8
+ const isVue3 = ( vue && semver . major ( vue . version ) === 3 )
10
9
11
- api . chainWebpack ( ( config ) => {
10
+ api . chainWebpack ( config => {
12
11
config . resolveLoader . modules . prepend ( path . join ( __dirname , 'node_modules' ) )
13
12
14
13
if ( ! projectOptions . pages ) {
15
- config . entry ( 'app' ) . clear ( ) . add ( './src/main.ts' )
14
+ config . entry ( 'app' )
15
+ . clear ( )
16
+ . add ( './src/main.ts' )
16
17
}
17
18
18
- config . resolve . extensions . prepend ( '.ts' ) . prepend ( '.tsx' )
19
+ config . resolve
20
+ . extensions
21
+ . prepend ( '.ts' )
22
+ . prepend ( '.tsx' )
19
23
20
24
const tsRule = config . module . rule ( 'ts' ) . test ( / \. t s $ / )
21
25
const tsxRule = config . module . rule ( 'tsx' ) . test ( / \. t s x $ / )
@@ -29,15 +33,11 @@ module.exports = (api, projectOptions) => {
29
33
addLoader ( {
30
34
name : 'cache-loader' ,
31
35
loader : require . resolve ( 'cache-loader' ) ,
32
- options : api . genCacheConfig (
33
- 'ts-loader' ,
34
- {
35
- 'ts-loader' : require ( 'ts-loader/package.json' ) . version ,
36
- typescript : require ( 'typescript/package.json' ) . version ,
37
- modern : ! ! process . env . VUE_CLI_MODERN_BUILD
38
- } ,
39
- 'tsconfig.json'
40
- )
36
+ options : api . genCacheConfig ( 'ts-loader' , {
37
+ 'ts-loader' : require ( 'ts-loader/package.json' ) . version ,
38
+ 'typescript' : require ( 'typescript/package.json' ) . version ,
39
+ modern : ! ! process . env . VUE_CLI_MODERN_BUILD
40
+ } , 'tsconfig.json' )
41
41
} )
42
42
43
43
if ( useThreads ) {
@@ -72,50 +72,43 @@ module.exports = (api, projectOptions) => {
72
72
}
73
73
} )
74
74
// make sure to append TSX suffix
75
- tsxRule
76
- . use ( 'ts-loader' )
77
- . loader ( require . resolve ( 'ts-loader' ) )
78
- . tap ( ( options ) => {
79
- options = Object . assign ( { } , options )
80
- delete options . appendTsSuffixTo
81
- options . appendTsxSuffixTo = [ '\\.vue$' ]
82
- return options
83
- } )
75
+ tsxRule . use ( 'ts-loader' ) . loader ( require . resolve ( 'ts-loader' ) ) . tap ( options => {
76
+ options = Object . assign ( { } , options )
77
+ delete options . appendTsSuffixTo
78
+ options . appendTsxSuffixTo = [ '\\.vue$' ]
79
+ return options
80
+ } )
84
81
85
82
// this plugin does not play well with jest + cypress setup (tsPluginE2e.spec.js) somehow
86
83
// so temporarily disabled for vue-cli tests
87
84
if ( ! process . env . VUE_CLI_TEST ) {
88
85
if ( isVue3 ) {
89
86
config
90
87
. plugin ( 'fork-ts-checker' )
91
- . use ( require ( 'fork-ts-checker-webpack-plugin-v5' ) , [
92
- {
93
- typescript : {
94
- extensions : {
95
- vue : {
96
- enabled : true ,
97
- compiler : '@vue/compiler-sfc'
98
- }
99
- } ,
100
- diagnosticOptions : {
101
- semantic : true ,
102
- // https://github.com/TypeStrong/ts-loader#happypackmode
103
- syntactic : useThreads
88
+ . use ( require ( 'fork-ts-checker-webpack-plugin-v5' ) , [ {
89
+ typescript : {
90
+ extensions : {
91
+ vue : {
92
+ enabled : true ,
93
+ compiler : '@vue/compiler-sfc'
104
94
}
95
+ } ,
96
+ diagnosticOptions : {
97
+ semantic : true ,
98
+ // https://github.com/TypeStrong/ts-loader#happypackmode
99
+ syntactic : useThreads
105
100
}
106
101
}
107
- ] )
102
+ } ] )
108
103
} else {
109
104
config
110
105
. plugin ( 'fork-ts-checker' )
111
- . use ( require ( 'fork-ts-checker-webpack-plugin' ) , [
112
- {
106
+ . use ( require ( 'fork-ts-checker-webpack-plugin' ) , [ {
113
107
vue : { enabled : true , compiler : 'vue-template-compiler' } ,
114
108
formatter : 'codeframe' ,
115
109
// https://github.com/TypeStrong/ts-loader#happypackmode-boolean-defaultfalse
116
110
checkSyntacticErrors : useThreads
117
- }
118
- ] )
111
+ } ] )
119
112
}
120
113
}
121
114
} )
0 commit comments