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 EXPORT_REQUIRE_RUNTIME_MODULE_ID, GetChunkFilenameRuntimeModule, chunk_has_css,
23 is_enabled_for_chunk, 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(
40 StartupChunkDependenciesPlugin::new(ChunkLoading::Enable(ChunkLoadingType::Jsonp), true)
41 .boxed(),
42 );
43 plugins.push(JsonpChunkLoadingPlugin::default().boxed());
44 }
45 ChunkLoadingType::Require => {
46 plugins.push(
47 StartupChunkDependenciesPlugin::new(ChunkLoading::Enable(ChunkLoadingType::Require), false)
48 .boxed(),
49 );
50 plugins.push(CommonJsChunkLoadingPlugin::new(false).boxed())
51 }
52 ChunkLoadingType::AsyncNode => {
53 plugins.push(
54 StartupChunkDependenciesPlugin::new(
55 ChunkLoading::Enable(ChunkLoadingType::AsyncNode),
56 true,
57 )
58 .boxed(),
59 );
60 plugins.push(CommonJsChunkLoadingPlugin::new(true).boxed())
61 }
62 ChunkLoadingType::ImportScripts => {
63 plugins.push(
64 StartupChunkDependenciesPlugin::new(
65 ChunkLoading::Enable(ChunkLoadingType::ImportScripts),
66 true,
67 )
68 .boxed(),
69 );
70 plugins.push(ImportScriptsChunkLoadingPlugin::default().boxed());
71 }
72 ChunkLoadingType::Import => {
73 plugins.push(
74 StartupChunkDependenciesPlugin::new(ChunkLoading::Enable(ChunkLoadingType::Import), true)
75 .boxed(),
76 );
77 plugins.push(ModuleChunkLoadingPlugin::default().boxed())
78 }
79 ChunkLoadingType::Custom(_) => (),
80 }
81}