@@ -32,6 +32,13 @@ export function makeBaseNPMConfig(options = {}) {
3232 bundledBuiltins = [ ] ,
3333 } = options ;
3434
35+ // Make sure subpath imports are also treated as external (e.g., 'solid-js/web' when 'solid-js' is external)
36+ const externalWithSubpaths = [
37+ ...Object . keys ( packageDotJSON . dependencies || { } ) ,
38+ ...Object . keys ( packageDotJSON . peerDependencies || { } ) ,
39+ ...Object . keys ( packageDotJSON . optionalDependencies || { } ) ,
40+ ] . map ( dep => new RegExp ( `^${ dep } (?:/.*)?$` ) ) ;
41+
3542 const debugBuildStatementReplacePlugin = makeDebugBuildStatementReplacePlugin ( ) ;
3643 const rrwebBuildPlugin = makeRrwebBuildPlugin ( {
3744 excludeShadowDom : undefined ,
@@ -85,12 +92,7 @@ export function makeBaseNPMConfig(options = {}) {
8592 plugins : [ debugBuildStatementReplacePlugin , rrwebBuildPlugin ] ,
8693
8794 // don't include imported modules from outside the package in the final output
88- external : [
89- ...builtinModules . filter ( m => ! bundledBuiltins . includes ( m ) ) ,
90- ...Object . keys ( packageDotJSON . dependencies || { } ) ,
91- ...Object . keys ( packageDotJSON . peerDependencies || { } ) ,
92- ...Object . keys ( packageDotJSON . optionalDependencies || { } ) ,
93- ] ,
95+ external : [ ...builtinModules . filter ( m => ! bundledBuiltins . includes ( m ) ) , ...externalWithSubpaths ] ,
9496 } ) ;
9597
9698 return deepMerge ( defaultBaseConfig , packageSpecificConfig , {
0 commit comments