@@ -12,12 +12,12 @@ const path = require('path');
12
12
13
13
class ModuleScopePlugin {
14
14
constructor ( appSrc , allowedFiles = [ ] ) {
15
- this . appSrc = appSrc ;
15
+ this . appSrcs = Array . isArray ( appSrc ) ? appSrc : [ appSrc ] ;
16
16
this . allowedFiles = new Set ( allowedFiles ) ;
17
17
}
18
18
19
19
apply ( resolver ) {
20
- const { appSrc } = this ;
20
+ const { appSrcs } = this ;
21
21
resolver . plugin ( 'file' , ( request , callback ) => {
22
22
// Unknown issuer, probably webpack internals
23
23
if ( ! request . context . issuer ) {
@@ -34,9 +34,13 @@ class ModuleScopePlugin {
34
34
}
35
35
// Resolve the issuer from our appSrc and make sure it's one of our files
36
36
// Maybe an indexOf === 0 would be better?
37
- const relative = path . relative ( appSrc , request . context . issuer ) ;
38
- // If it's not in src/ or a subdirectory, not our request!
39
- if ( relative . startsWith ( '../' ) || relative . startsWith ( '..\\' ) ) {
37
+ if (
38
+ appSrcs . every ( appSrc => {
39
+ const relative = path . relative ( appSrc , request . context . issuer ) ;
40
+ // If it's not in one of our app src or a subdirectory, not our request!
41
+ return relative . startsWith ( '../' ) || relative . startsWith ( '..\\' ) ;
42
+ } )
43
+ ) {
40
44
return callback ( ) ;
41
45
}
42
46
const requestFullPath = path . resolve (
@@ -47,11 +51,15 @@ class ModuleScopePlugin {
47
51
return callback ( ) ;
48
52
}
49
53
// Find path from src to the requested file
50
- // Error if in a parent directory of src/
51
- const requestRelative = path . relative ( appSrc , requestFullPath ) ;
54
+ // Error if in a parent directory of all given appSrcs
52
55
if (
53
- requestRelative . startsWith ( '../' ) ||
54
- requestRelative . startsWith ( '..\\' )
56
+ appSrcs . every ( appSrc => {
57
+ const requestRelative = path . relative ( appSrc , requestFullPath ) ;
58
+ return (
59
+ requestRelative . startsWith ( '../' ) ||
60
+ requestRelative . startsWith ( '..\\' )
61
+ ) ;
62
+ } )
55
63
) {
56
64
callback (
57
65
new Error (
0 commit comments