rspack_plugin_externals/
node_target_plugin.rs

1use rspack_core::{BoxPlugin, ExternalItem, PluginExt};
2use rspack_regex::RspackRegex;
3
4use crate::ExternalsPlugin;
5
6pub fn node_target_plugin() -> BoxPlugin {
7  ExternalsPlugin::new(
8    "node-commonjs".to_string(),
9    vec![
10      ExternalItem::from("assert".to_string()),
11      ExternalItem::from("assert/strict".to_string()),
12      ExternalItem::from("async_hooks".to_string()),
13      ExternalItem::from("buffer".to_string()),
14      ExternalItem::from("child_process".to_string()),
15      ExternalItem::from("cluster".to_string()),
16      ExternalItem::from("console".to_string()),
17      ExternalItem::from("constants".to_string()),
18      ExternalItem::from("crypto".to_string()),
19      ExternalItem::from("dgram".to_string()),
20      ExternalItem::from("diagnostics_channel".to_string()),
21      ExternalItem::from("dns".to_string()),
22      ExternalItem::from("dns/promises".to_string()),
23      ExternalItem::from("domain".to_string()),
24      ExternalItem::from("events".to_string()),
25      ExternalItem::from("fs".to_string()),
26      ExternalItem::from("fs/promises".to_string()),
27      ExternalItem::from("http".to_string()),
28      ExternalItem::from("http2".to_string()),
29      ExternalItem::from("https".to_string()),
30      ExternalItem::from("inspector".to_string()),
31      ExternalItem::from("inspector/promises".to_string()),
32      ExternalItem::from("module".to_string()),
33      ExternalItem::from("net".to_string()),
34      ExternalItem::from("os".to_string()),
35      ExternalItem::from("path".to_string()),
36      ExternalItem::from("path/posix".to_string()),
37      ExternalItem::from("path/win32".to_string()),
38      ExternalItem::from("perf_hooks".to_string()),
39      ExternalItem::from("process".to_string()),
40      ExternalItem::from("punycode".to_string()),
41      ExternalItem::from("querystring".to_string()),
42      ExternalItem::from("readline".to_string()),
43      ExternalItem::from("readline/promises".to_string()),
44      ExternalItem::from("repl".to_string()),
45      ExternalItem::from("stream".to_string()),
46      ExternalItem::from("stream/consumers".to_string()),
47      ExternalItem::from("stream/promises".to_string()),
48      ExternalItem::from("stream/web".to_string()),
49      ExternalItem::from("string_decoder".to_string()),
50      ExternalItem::from("sys".to_string()),
51      ExternalItem::from("timers".to_string()),
52      ExternalItem::from("timers/promises".to_string()),
53      ExternalItem::from("tls".to_string()),
54      ExternalItem::from("trace_events".to_string()),
55      ExternalItem::from("tty".to_string()),
56      ExternalItem::from("url".to_string()),
57      ExternalItem::from("util".to_string()),
58      ExternalItem::from("util/types".to_string()),
59      ExternalItem::from("v8".to_string()),
60      ExternalItem::from("vm".to_string()),
61      ExternalItem::from("wasi".to_string()),
62      ExternalItem::from("worker_threads".to_string()),
63      ExternalItem::from("zlib".to_string()),
64      ExternalItem::from(RspackRegex::new("^node:").expect("Invalid regexp")),
65      // Yarn PnP adds pnpapi as "builtin"
66      ExternalItem::from("pnpapi".to_string()),
67    ],
68    false,
69  )
70  .boxed()
71}