@@ -31,16 +31,16 @@ use crate::{
3131 cache:: { use_code_splitting_cache, Cache , CodeSplittingCache } ,
3232 is_source_equal,
3333 tree_shaking:: { optimizer, visitor:: SymbolRef , BailoutFlag , OptimizeDependencyResult } ,
34- AddQueue , AddTask , AddTaskResult , AdditionalChunkRuntimeRequirementsArgs , BoxModule ,
35- BoxModuleDependency , BuildQueue , BuildTask , BuildTaskResult , Chunk , ChunkByUkey ,
36- ChunkContentHash , ChunkGraph , ChunkGroup , ChunkGroupUkey , ChunkHashArgs , ChunkKind , ChunkUkey ,
37- CleanQueue , CleanTask , CleanTaskResult , CodeGenerationResult , CodeGenerationResults ,
38- CompilationLogger , CompilationLogging , CompilerOptions , ContentHashArgs , DependencyId , Entry ,
39- EntryData , EntryOptions , Entrypoint , FactorizeQueue , FactorizeTask , FactorizeTaskResult ,
40- Filename , Logger , Module , ModuleGraph , ModuleIdentifier , ModuleProfile , ModuleType , PathData ,
41- ProcessAssetsArgs , ProcessDependenciesQueue , ProcessDependenciesResult , ProcessDependenciesTask ,
42- RenderManifestArgs , Resolve , ResolverFactory , RuntimeGlobals , RuntimeModule , RuntimeSpec ,
43- SharedPluginDriver , SourceType , Stats , TaskResult , WorkerTask ,
34+ AddQueue , AddTask , AddTaskResult , AdditionalChunkRuntimeRequirementsArgs , BoxDependency ,
35+ BoxModule , BuildQueue , BuildTask , BuildTaskResult , Chunk , ChunkByUkey , ChunkContentHash ,
36+ ChunkGraph , ChunkGroup , ChunkGroupUkey , ChunkHashArgs , ChunkKind , ChunkUkey , CleanQueue ,
37+ CleanTask , CleanTaskResult , CodeGenerationResult , CodeGenerationResults , CompilationLogger ,
38+ CompilationLogging , CompilerOptions , ContentHashArgs , DependencyId , Entry , EntryData ,
39+ EntryOptions , Entrypoint , FactorizeQueue , FactorizeTask , FactorizeTaskResult , Filename , Logger ,
40+ Module , ModuleGraph , ModuleIdentifier , ModuleProfile , ModuleType , PathData , ProcessAssetsArgs ,
41+ ProcessDependenciesQueue , ProcessDependenciesResult , ProcessDependenciesTask , RenderManifestArgs ,
42+ Resolve , ResolverFactory , RuntimeGlobals , RuntimeModule , RuntimeSpec , SharedPluginDriver ,
43+ SourceType , Stats , TaskResult , WorkerTask ,
4444} ;
4545use crate :: { tree_shaking:: visitor:: OptimizeAnalyzeResult , Context } ;
4646
@@ -427,7 +427,10 @@ impl Compilation {
427427 . expect ( "dependency not found" ) ;
428428 let parent_module =
429429 parent_module_identifier. and_then ( |id| self . module_graph . module_by_identifier ( & id) ) ;
430- if parent_module_identifier. is_some ( ) && parent_module. is_none ( ) {
430+ if parent_module_identifier. is_some ( )
431+ && parent_module. is_none ( )
432+ && dependency. as_module_dependency ( ) . is_none ( )
433+ {
431434 return ;
432435 }
433436
@@ -536,19 +539,26 @@ impl Compilation {
536539 let mut sorted_dependencies = HashMap :: default ( ) ;
537540
538541 task. dependencies . into_iter ( ) . for_each ( |dependency| {
539- // TODO need implement more dependency `resource_identifier()`
540- // https://github.com/webpack/webpack/blob/main/lib/Compilation.js#L1621
541- let resource_identifier =
542- if let Some ( resource_identifier) = dependency. resource_identifier ( ) {
543- resource_identifier. to_string ( )
544- } else {
545- format ! ( "{}|{}" , dependency. dependency_type( ) , dependency. request( ) )
546- } ;
547-
548- sorted_dependencies
549- . entry ( resource_identifier)
550- . or_insert ( vec ! [ ] )
551- . push ( dependency) ;
542+ // only module dependency can put into resolve queue.
543+ if let Some ( module_dependency) = dependency. as_module_dependency ( ) {
544+ // TODO need implement more dependency `resource_identifier()`
545+ // https://github.com/webpack/webpack/blob/main/lib/Compilation.js#L1621
546+ let resource_identifier =
547+ if let Some ( resource_identifier) = module_dependency. resource_identifier ( ) {
548+ resource_identifier. to_string ( )
549+ } else {
550+ format ! (
551+ "{}|{}" ,
552+ module_dependency. dependency_type( ) ,
553+ module_dependency. request( )
554+ )
555+ } ;
556+
557+ sorted_dependencies
558+ . entry ( resource_identifier)
559+ . or_insert ( vec ! [ ] )
560+ . push ( dependency) ;
561+ }
552562 } ) ;
553563
554564 for dependencies in sorted_dependencies. into_values ( ) {
@@ -677,9 +687,11 @@ impl Compilation {
677687
678688 let mut dep_ids = vec ! [ ] ;
679689 for dependency in build_result. dependencies . iter ( ) {
680- self
681- . module_graph
682- . set_dependency_import_var ( module. identifier ( ) , dependency. request ( ) ) ;
690+ if let Some ( dependency) = dependency. as_module_dependency ( ) {
691+ self
692+ . module_graph
693+ . set_dependency_import_var ( module. identifier ( ) , dependency. request ( ) ) ;
694+ }
683695 dep_ids. push ( * dependency. id ( ) ) ;
684696 }
685697
@@ -843,7 +855,7 @@ impl Compilation {
843855 queue : & mut FactorizeQueue ,
844856 original_module_identifier : Option < ModuleIdentifier > ,
845857 original_module_context : Option < Context > ,
846- dependencies : Vec < BoxModuleDependency > ,
858+ dependencies : Vec < BoxDependency > ,
847859 is_entry : bool ,
848860 module_type : Option < ModuleType > ,
849861 side_effects : Option < bool > ,
0 commit comments