@@ -166,7 +166,7 @@ const getSourceForImportExternal = (
166166 const importName = runtimeTemplate . outputOptions . importFunctionName ;
167167 if (
168168 ! runtimeTemplate . supportsDynamicImport ( ) &&
169- ( importName === "import" || importName ! == "module-import" )
169+ ( importName === "import" || importName = == "module-import" )
170170 ) {
171171 throw new Error (
172172 "The target environment doesn't support 'import()' so it's not possible to use external type 'import'"
@@ -546,6 +546,25 @@ class ExternalModule extends Module {
546546 return callback ( null , ! this . buildMeta ) ;
547547 }
548548
549+ /**
550+ * @param {string } externalType raw external type
551+ * @returns {string } resolved external type
552+ */
553+ getModuleImportType ( externalType ) {
554+ if ( externalType === "module-import" ) {
555+ if (
556+ this . dependencyMeta &&
557+ /** @type {ImportDependencyMeta } */ ( this . dependencyMeta ) . externalType
558+ ) {
559+ return /** @type {ImportDependencyMeta } */ ( this . dependencyMeta )
560+ . externalType ;
561+ }
562+ return "module" ;
563+ }
564+
565+ return externalType ;
566+ }
567+
549568 /**
550569 * @param {WebpackOptions } options webpack options
551570 * @param {Compilation } compilation the compilation
@@ -597,14 +616,7 @@ class ExternalModule extends Module {
597616 case "module" :
598617 case "import" :
599618 case "module-import" : {
600- const type =
601- externalType === "module-import" &&
602- this . dependencyMeta &&
603- /** @type {ImportDependencyMeta } */ ( this . dependencyMeta ) . externalType
604- ? /** @type {ImportDependencyMeta } */ ( this . dependencyMeta )
605- . externalType
606- : externalType ;
607-
619+ const type = this . getModuleImportType ( externalType ) ;
608620 if ( type === "module" ) {
609621 if ( this . buildInfo . module ) {
610622 if ( ! Array . isArray ( request ) || request . length === 1 ) {
@@ -742,13 +754,7 @@ class ExternalModule extends Module {
742754 case "module" :
743755 case "import" :
744756 case "module-import" : {
745- const type =
746- externalType === "module-import" &&
747- dependencyMeta &&
748- /** @type {ImportDependencyMeta } */ ( dependencyMeta ) . externalType
749- ? /** @type {ImportDependencyMeta } */ ( dependencyMeta ) . externalType
750- : externalType ;
751-
757+ const type = this . getModuleImportType ( externalType ) ;
752758 if ( type === "import" ) {
753759 return getSourceForImportExternal (
754760 request ,
0 commit comments