rspack_plugin_runtime/
lib.rs1mod helpers;
2pub use helpers::*;
3mod common_js_chunk_format;
4pub use common_js_chunk_format::CommonJsChunkFormatPlugin;
5mod runtime_plugin;
6use rspack_core::{BoxPlugin, ChunkLoading, ChunkLoadingType, PluginExt};
7pub use runtime_plugin::RuntimePlugin;
8mod array_push_callback_chunk_format;
9pub use array_push_callback_chunk_format::ArrayPushCallbackChunkFormatPlugin;
10mod common_js_chunk_loading;
11pub use common_js_chunk_loading::CommonJsChunkLoadingPlugin;
12mod jsonp_chunk_loading;
13pub use jsonp_chunk_loading::JsonpChunkLoadingPlugin;
14mod module_chunk_format;
15pub use module_chunk_format::ModuleChunkFormatPlugin;
16mod module_chunk_loading;
17pub use module_chunk_loading::ModuleChunkLoadingPlugin;
18mod import_scripts_chunk_loading;
19pub use import_scripts_chunk_loading::ImportScriptsChunkLoadingPlugin;
20mod runtime_module;
21pub use runtime_module::{
22 GetChunkFilenameRuntimeModule, chunk_has_css, chunk_has_js, is_enabled_for_chunk,
23 stringify_chunks,
24};
25mod startup_chunk_dependencies;
26pub use startup_chunk_dependencies::StartupChunkDependenciesPlugin;
27mod chunk_prefetch_preload;
28pub use chunk_prefetch_preload::ChunkPrefetchPreloadPlugin;
29mod bundler_info;
30pub use bundler_info::{BundlerInfoForceMode, BundlerInfoPlugin};
31mod runtime_module_from_js;
32pub use runtime_module_from_js::RuntimeModuleFromJs;
33mod drive;
34pub use drive::*;
35
36pub fn enable_chunk_loading_plugin(loading_type: ChunkLoadingType, plugins: &mut Vec<BoxPlugin>) {
37 match loading_type {
38 ChunkLoadingType::Jsonp => {
39 plugins.push(JsonpChunkLoadingPlugin::default().boxed());
40 }
41 ChunkLoadingType::Require => {
42 plugins.push(
43 StartupChunkDependenciesPlugin::new(ChunkLoading::Enable(ChunkLoadingType::Require), false)
44 .boxed(),
45 );
46 plugins.push(CommonJsChunkLoadingPlugin::new(false).boxed())
47 }
48 ChunkLoadingType::AsyncNode => {
49 plugins.push(
50 StartupChunkDependenciesPlugin::new(
51 ChunkLoading::Enable(ChunkLoadingType::AsyncNode),
52 true,
53 )
54 .boxed(),
55 );
56 plugins.push(CommonJsChunkLoadingPlugin::new(true).boxed())
57 }
58 ChunkLoadingType::ImportScripts => {
59 plugins.push(
60 StartupChunkDependenciesPlugin::new(
61 ChunkLoading::Enable(ChunkLoadingType::ImportScripts),
62 true,
63 )
64 .boxed(),
65 );
66 plugins.push(ImportScriptsChunkLoadingPlugin::default().boxed());
67 }
68 ChunkLoadingType::Import => plugins.push(ModuleChunkLoadingPlugin::default().boxed()),
69 ChunkLoadingType::Custom(_) => (),
70 }
71}