@@ -13,6 +13,7 @@ const { CleanWebpackPlugin } = require('clean-webpack-plugin');
13
13
14
14
const PACKAGE_MATCHER = / \/ n o d e _ m o d u l e s \/ (?< package > (?: @ [ ^ @ \/ ] + \/ ) ? [ ^ @ \/ ] + ) \/ / ;
15
15
type IgnoredNpmPackagesMapping = Array < RegExp | string > ;
16
+ const ignoredPackagesCache : { [ k : string ] : boolean } = { } ;
16
17
interface PostCssLoaderOptions { [ key : string ] : any }
17
18
18
19
interface Entries
@@ -47,6 +48,11 @@ function isAllowedPath (path: string, ignoredPackages: IgnoredNpmPackagesMapping
47
48
48
49
const packageNameToCompile = ( match . groups as any ) . package ;
49
50
51
+ if ( undefined !== ignoredPackagesCache [ packageNameToCompile ] )
52
+ {
53
+ return ignoredPackagesCache [ packageNameToCompile ] ;
54
+ }
55
+
50
56
const length = ignoredPackages . length ;
51
57
for ( let i = 0 ; i < length ; ++ i )
52
58
{
@@ -56,16 +62,16 @@ function isAllowedPath (path: string, ignoredPackages: IgnoredNpmPackagesMapping
56
62
{
57
63
if ( ignoredPackage === packageNameToCompile )
58
64
{
59
- return false ;
65
+ return ignoredPackagesCache [ packageNameToCompile ] = false ;
60
66
}
61
67
}
62
68
else if ( ignoredPackage . test ( packageNameToCompile ) )
63
69
{
64
- return false ;
70
+ return ignoredPackagesCache [ packageNameToCompile ] = false ;
65
71
}
66
72
}
67
73
68
- return true ;
74
+ return ignoredPackagesCache [ packageNameToCompile ] = true ;
69
75
}
70
76
71
77
/**
@@ -92,6 +98,8 @@ export class Kaba
92
98
private nodeSettings : webpack . Node | false = false ;
93
99
private ignoredNpmPackages : IgnoredNpmPackagesMapping = [
94
100
/ ^ @ b a b e l / ,
101
+ / ^ b a b e l - / ,
102
+ / ^ c o r e - j s ( - | $ ) / ,
95
103
/ ^ r e g e n e r a t o r - / ,
96
104
] ;
97
105
private postCssLoaderOptions : PostCssLoaderOptions = { } ;
0 commit comments