@@ -28,7 +28,7 @@ module.exports = (api, projectOptions) => {
28
28
}
29
29
30
30
addLoader ( {
31
- loader : 'cache-loader' ,
31
+ loader : require . resolve ( 'cache-loader' ) ,
32
32
options : api . genCacheConfig ( 'ts-loader' , {
33
33
'ts-loader' : require ( 'ts-loader/package.json' ) . version ,
34
34
'typescript' : require ( 'typescript/package.json' ) . version ,
@@ -38,7 +38,7 @@ module.exports = (api, projectOptions) => {
38
38
39
39
if ( useThreads ) {
40
40
addLoader ( {
41
- loader : 'thread-loader' ,
41
+ loader : require . resolve ( 'thread-loader' ) ,
42
42
options :
43
43
typeof projectOptions . parallel === 'number'
44
44
? { workers : projectOptions . parallel }
@@ -48,11 +48,14 @@ module.exports = (api, projectOptions) => {
48
48
49
49
if ( api . hasPlugin ( 'babel' ) ) {
50
50
addLoader ( {
51
- loader : 'babel-loader'
51
+ // TODO: I guess the intent is to require the `babel-loader` provided by the Babel vue
52
+ // plugin, but that means we now rely on the hoisting. It should instead we queried
53
+ // against the plugin itself, or through a peer dependency.
54
+ loader : require . resolve ( 'babel-loader' )
52
55
} )
53
56
}
54
57
addLoader ( {
55
- loader : 'ts-loader' ,
58
+ loader : require . resolve ( 'ts-loader' ) ,
56
59
options : {
57
60
transpileOnly : true ,
58
61
appendTsSuffixTo : [ '\\.vue$' ] ,
@@ -61,7 +64,7 @@ module.exports = (api, projectOptions) => {
61
64
}
62
65
} )
63
66
// make sure to append TSX suffix
64
- tsxRule . use ( 'ts-loader' ) . loader ( 'ts-loader' ) . tap ( options => {
67
+ tsxRule . use ( 'ts-loader' ) . loader ( require . resolve ( 'ts-loader' ) ) . tap ( options => {
65
68
options = Object . assign ( { } , options )
66
69
delete options . appendTsSuffixTo
67
70
options . appendTsxSuffixTo = [ '\\.vue$' ]
0 commit comments