Can't get Tree-Shaking feature to work or does it work well?

I’m trying to tree-shake simple .ts flie but I get many node_modules and vendor_* files, not just one bundle. I’m trying to do it in Termux but I can confirm that tree-shaking example of RaananW working fine on my system without creating all those node_modules_ files. But what’s wrong with my config? I tried to do the same but I can’t. Sorry for the stupid question.

Summary
[I] ~/m/g/babylonjs0 ➤ cat webpack_termux_debug.config.js
const path = require( "path" );
module.exports = {
  mode: "development",
  devtool: "inline-source-map",
  entry: {
    main: "./src/index.ts",
  },
  output: {
    path: path.resolve( __dirname, "./build/js" ),
    filename: "index.js",
  },
  resolve: {
    extensions: [ ".ts", ".tsx", ".js" ],
  },
  module: {
    rules: [
      {
        test: /\.(js|mjs|jsx|ts|tsx)$/,
        loader: "source-map-loader",
        enforce: "pre",
      },
      {
        test: /\.tsx?$/,
        loader: "ts-loader",
        // sideEffects: true
        exclude: /node_modules/,
      },
      {
        test: /\.(glsl|vs|fs)$/,
        loader: "ts-shader-loader",
        exclude: /node_modules/,
      },

    ]
  },
  optimization: {
    usedExports: true,
    minimize: true,
  }
};


[I] ~/m/g/babylonjs0 ➤ cat tsconfig.json
{
  "compilerOptions": {
    "module": "esNext",
    "target": "es2021",
    "moduleResolution": "node",
    "strict": true,
    "noImplicitAny": true,
    "noImplicitReturns": true,
    "noImplicitThis": true,
    "strictNullChecks": true,
    "strictFunctionTypes": true,
    "preserveConstEnums":true,
    "sourceMap": true,
    "rootDir": "./",
    "esModuleInterop": true,
  }
}


[I] ~/m/g/babylonjs0 ➤ cat src/index.ts
import { Engine } from "@babylonjs/core/Engines/engine";
const canvas = document.getElementById("renderCanvas") as HTMLCanvasElement;
const engine = new Engine(canvas);


[I] ~/m/g/babylonjs0 ➤ npm list
home@ /data/data/com.termux/files/home
├── @babel/core@7.26.0
├── @babel/preset-env@7.26.0
├── @babel/preset-typescript@7.26.0
├── @babylonjs/core@7.42.0
├── @babylonjs/gui@7.42.0
├── @babylonjs/inspector@7.42.0
├── @babylonjs/loaders@7.42.0
├── @babylonjs/materials@7.42.0
├── @babylonjs/post-processes@7.42.0
├── @babylonjs/procedural-textures@7.42.0
├── @babylonjs/serializers@7.42.0
├── @babylonjs/viewer@7.42.0
├── @swc/core@1.10.4
├── @types/three@0.171.0
├── babel-loader@9.2.1
├── gsap@3.12.5
├── source-map-loader@5.0.0
├── swc-loader@0.2.6
├── terser-webpack-plugin@5.3.11
├── three@0.171.0
├── ts-loader@9.5.1
├── typescript@5.7.2
├── webpack-cli@6.0.1
├── webpack-node-externals@3.0.0
└── webpack@5.97.1


[I] ~/m/g/babylonjs0 ➤ la -R
.:
total 39K
drwx------. 3 u0_a567 u0_a567 3.4K Jan  1 11:01 build
drwx------. 2 u0_a567 u0_a567 3.4K Jan  1 10:41 src
-rw-------. 1 u0_a567 u0_a567  404 Jan  1 11:36 tsconfig.json
-rw-------. 1 u0_a567 u0_a567 2.7K Jan  1 12:03 webpack_termux_debug.config.js

./build:
total 8.0K
-rw-------. 1 u0_a567 u0_a567 530 Jan  1 10:59 index.html
drwx------. 2 u0_a567 u0_a567 20K Jan  1 12:19 js

./build/js:
total 0

./src:
total 4.0K
-rw-------. 1 u0_a567 u0_a567 1.8K Jan  1 10:41 index.ts


[I] ~/m/g/babylonjs0 ➤ webpack --version

  System:
    OS: android
    CPU: Unknown
    Memory: 976.07 MB / 5.48 GB
  Binaries:
    Node: 23.4.0 - /data/data/com.termux/files/usr/bin/node
    npm: 10.9.2 - /data/data/com.termux/files/usr/bin/npm
  Global Packages:
    webpack-cli: 6.0.1
    webpack: 5.97.1


[N] ~/m/g/babylonjs0 ➤ rm ./build/js/*; webpack --config webpack_termux_debug.config.js; la ./build/js/
assets by chunk 2.5 MiB (id hint: vendors)
  asset vendors-node_modules_babylonjs_core_Materials_Textures_Loaders_envTextureLoader_js.index.js 1.15 MiB [emitted] [minimized] (id hint: vendors) 1 related asset
  asset vendors-node_modules_babylonjs_core_Misc_HighDynamicRange_cubemapToSphericalPolynomial_js-nod-e9e15c.index.js 586 KiB [emitted] [minimized] (id hint: vendors) 1 related asset
  asset vendors-node_modules_babylonjs_core_Materials_Textures_Loaders_exrTextureLoader_js-node_modul-f3aa7d.index.js 170 KiB [emitted] [minimized] (id hint: vendors) 1 related asset
  asset vendors-node_modules_babylonjs_core_Misc_tools_js.index.js 138 KiB [emitted] [minimized] (id hint: vendors) 1 related asset
  asset vendors-node_modules_babylonjs_core_Materials_Textures_texture_js.index.js 131 KiB [emitted] [minimized] (id hint: vendors) 1 related asset
  asset vendors-node_modules_babylonjs_core_Materials_Textures_Loaders_ktxTextureLoader_js-node_modul-236f1e.index.js 121 KiB [emitted] [minimized] (id hint: vendors) 1 related asset
  asset vendors-node_modules_babylonjs_core_Misc_dds_js.index.js 88.5 KiB [emitted] [minimized] (id hint: vendors) 1 related asset
  asset vendors-node_modules_babylonjs_core_Materials_Textures_Loaders_basisTextureLoader_js.index.js 64.6 KiB [emitted] [minimized] (id hint: vendors) 1 related asset
  asset vendors-node_modules_babylonjs_core_Materials_Textures_Loaders_hdrTextureLoader_js.index.js 45.4 KiB [emitted] [minimized] (id hint: vendors) 1 related asset
  asset vendors-node_modules_babylonjs_core_Materials_Textures_Loaders_tgaTextureLoader_js.index.js 33.2 KiB [emitted] [minimized] (id hint: vendors) 1 related asset
+ 17 assets
runtime modules 6.69 KiB 9 modules
modules by path ../../../node_modules/@babylonjs/core/ 2.11 MiB 188 modules
./src/index.ts 2.62 KiB [built] [code generated]
webpack 5.97.1 compiled successfully in 15310 ms
total 5.8M
-rw-------. 1 u0_a567 u0_a567 3.0M Jan  1 13:42 index.js
-rw-------. 1 u0_a567 u0_a567  28K Jan  1 13:42 index.js.LICENSE.txt
-rw-------. 1 u0_a567 u0_a567  11K Jan  1 13:42 node_modules_babylonjs_core_Materials_Textures_Loaders_ddsTextureLoader_js.index.js
-rw-------. 1 u0_a567 u0_a567  368 Jan  1 13:42 node_modules_babylonjs_core_Materials_Textures_Loaders_ddsTextureLoader_js.index.js.LICENSE.txt
-rw-------. 1 u0_a567 u0_a567  23K Jan  1 13:42 node_modules_babylonjs_core_Materials_Textures_Loaders_iesTextureLoader_js.index.js
-rw-------. 1 u0_a567 u0_a567  604 Jan  1 13:42 node_modules_babylonjs_core_Materials_Textures_Loaders_iesTextureLoader_js.index.js.LICENSE.txt
-rw-------. 1 u0_a567 u0_a567  23K Jan  1 13:42 node_modules_babylonjs_core_Misc_dumpTools_js.index.js
-rw-------. 1 u0_a567 u0_a567  426 Jan  1 13:42 node_modules_babylonjs_core_Misc_dumpTools_js.index.js.LICENSE.txt
-rw-------. 1 u0_a567 u0_a567 4.4K Jan  1 13:42 node_modules_babylonjs_core_ShadersWGSL_lodCube_fragment_js.index.js
-rw-------. 1 u0_a567 u0_a567  282 Jan  1 13:42 node_modules_babylonjs_core_ShadersWGSL_lodCube_fragment_js.index.js.LICENSE.txt
-rw-------. 1 u0_a567 u0_a567 2.5K Jan  1 13:42 node_modules_babylonjs_core_ShadersWGSL_lod_fragment_js.index.js
-rw-------. 1 u0_a567 u0_a567  270 Jan  1 13:42 node_modules_babylonjs_core_ShadersWGSL_lod_fragment_js.index.js.LICENSE.txt
-rw-------. 1 u0_a567 u0_a567 3.7K Jan  1 13:42 node_modules_babylonjs_core_ShadersWGSL_passCube_fragment_js.index.js
-rw-------. 1 u0_a567 u0_a567  285 Jan  1 13:42 node_modules_babylonjs_core_ShadersWGSL_passCube_fragment_js.index.js.LICENSE.txt
-rw-------. 1 u0_a567 u0_a567 2.1K Jan  1 13:42 node_modules_babylonjs_core_ShadersWGSL_pass_fragment_js.index.js
-rw-------. 1 u0_a567 u0_a567  273 Jan  1 13:42 node_modules_babylonjs_core_ShadersWGSL_pass_fragment_js.index.js.LICENSE.txt
-rw-------. 1 u0_a567 u0_a567 2.4K Jan  1 13:42 node_modules_babylonjs_core_ShadersWGSL_postprocess_vertex_js.index.js
-rw-------. 1 u0_a567 u0_a567  288 Jan  1 13:42 node_modules_babylonjs_core_ShadersWGSL_postprocess_vertex_js.index.js.LICENSE.txt
-rw-------. 1 u0_a567 u0_a567  16K Jan  1 13:42 node_modules_babylonjs_core_ShadersWGSL_rgbdDecode_fragment_js.index.js
-rw-------. 1 u0_a567 u0_a567  663 Jan  1 13:42 node_modules_babylonjs_core_ShadersWGSL_rgbdDecode_fragment_js.index.js.LICENSE.txt
-rw-------. 1 u0_a567 u0_a567  16K Jan  1 13:42 node_modules_babylonjs_core_ShadersWGSL_rgbdEncode_fragment_js.index.js
-rw-------. 1 u0_a567 u0_a567  663 Jan  1 13:42 node_modules_babylonjs_core_ShadersWGSL_rgbdEncode_fragment_js.index.js.LICENSE.txt
-rw-------. 1 u0_a567 u0_a567 3.4K Jan  1 13:42 node_modules_babylonjs_core_Shaders_lodCube_fragment_js.index.js
-rw-------. 1 u0_a567 u0_a567  270 Jan  1 13:42 node_modules_babylonjs_core_Shaders_lodCube_fragment_js.index.js.LICENSE.txt
-rw-------. 1 u0_a567 u0_a567 2.3K Jan  1 13:42 node_modules_babylonjs_core_Shaders_lod_fragment_js.index.js
-rw-------. 1 u0_a567 u0_a567  258 Jan  1 13:42 node_modules_babylonjs_core_Shaders_lod_fragment_js.index.js.LICENSE.txt
-rw-------. 1 u0_a567 u0_a567 3.0K Jan  1 13:42 node_modules_babylonjs_core_Shaders_passCube_fragment_js.index.js
-rw-------. 1 u0_a567 u0_a567  273 Jan  1 13:42 node_modules_babylonjs_core_Shaders_passCube_fragment_js.index.js.LICENSE.txt
-rw-------. 1 u0_a567 u0_a567 1.8K Jan  1 13:42 node_modules_babylonjs_core_Shaders_pass_fragment_js.index.js
-rw-------. 1 u0_a567 u0_a567  261 Jan  1 13:42 node_modules_babylonjs_core_Shaders_pass_fragment_js.index.js.LICENSE.txt
-rw-------. 1 u0_a567 u0_a567  16K Jan  1 13:42 node_modules_babylonjs_core_Shaders_rgbdDecode_fragment_js.index.js
-rw-------. 1 u0_a567 u0_a567  639 Jan  1 13:42 node_modules_babylonjs_core_Shaders_rgbdDecode_fragment_js.index.js.LICENSE.txt
-rw-------. 1 u0_a567 u0_a567  16K Jan  1 13:42 node_modules_babylonjs_core_Shaders_rgbdEncode_fragment_js.index.js
-rw-------. 1 u0_a567 u0_a567  639 Jan  1 13:42 node_modules_babylonjs_core_Shaders_rgbdEncode_fragment_js.index.js.LICENSE.txt
-rw-------. 1 u0_a567 u0_a567  65K Jan  1 13:42 vendors-node_modules_babylonjs_core_Materials_Textures_Loaders_basisTextureLoader_js.index.js
-rw-------. 1 u0_a567 u0_a567  903 Jan  1 13:42 vendors-node_modules_babylonjs_core_Materials_Textures_Loaders_basisTextureLoader_js.index.js.LICENSE.txt
-rw-------. 1 u0_a567 u0_a567 1.2M Jan  1 13:42 vendors-node_modules_babylonjs_core_Materials_Textures_Loaders_envTextureLoader_js.index.js
-rw-------. 1 u0_a567 u0_a567  11K Jan  1 13:42 vendors-node_modules_babylonjs_core_Materials_Textures_Loaders_envTextureLoader_js.index.js.LICENSE.txt
-rw-------. 1 u0_a567 u0_a567 170K Jan  1 13:42 vendors-node_modules_babylonjs_core_Materials_Textures_Loaders_exrTextureLoader_js-node_modul-f3aa7d.index.js
-rw-------. 1 u0_a567 u0_a567 3.5K Jan  1 13:42 vendors-node_modules_babylonjs_core_Materials_Textures_Loaders_exrTextureLoader_js-node_modul-f3aa7d.index.js.LICENSE.txt
-rw-------. 1 u0_a567 u0_a567  46K Jan  1 13:42 vendors-node_modules_babylonjs_core_Materials_Textures_Loaders_hdrTextureLoader_js.index.js
-rw-------. 1 u0_a567 u0_a567  927 Jan  1 13:42 vendors-node_modules_babylonjs_core_Materials_Textures_Loaders_hdrTextureLoader_js.index.js.LICENSE.txt
-rw-------. 1 u0_a567 u0_a567 122K Jan  1 13:42 vendors-node_modules_babylonjs_core_Materials_Textures_Loaders_ktxTextureLoader_js-node_modul-236f1e.index.js
-rw-------. 1 u0_a567 u0_a567 2.1K Jan  1 13:42 vendors-node_modules_babylonjs_core_Materials_Textures_Loaders_ktxTextureLoader_js-node_modul-236f1e.index.js.LICENSE.txt
-rw-------. 1 u0_a567 u0_a567  34K Jan  1 13:42 vendors-node_modules_babylonjs_core_Materials_Textures_Loaders_tgaTextureLoader_js.index.js
-rw-------. 1 u0_a567 u0_a567  537 Jan  1 13:42 vendors-node_modules_babylonjs_core_Materials_Textures_Loaders_tgaTextureLoader_js.index.js.LICENSE.txt
-rw-------. 1 u0_a567 u0_a567 131K Jan  1 13:42 vendors-node_modules_babylonjs_core_Materials_Textures_texture_js.index.js
-rw-------. 1 u0_a567 u0_a567 1.5K Jan  1 13:42 vendors-node_modules_babylonjs_core_Materials_Textures_texture_js.index.js.LICENSE.txt
-rw-------. 1 u0_a567 u0_a567 586K Jan  1 13:42 vendors-node_modules_babylonjs_core_Misc_HighDynamicRange_cubemapToSphericalPolynomial_js-nod-e9e15c.index.js
-rw-------. 1 u0_a567 u0_a567 5.1K Jan  1 13:42 vendors-node_modules_babylonjs_core_Misc_HighDynamicRange_cubemapToSphericalPolynomial_js-nod-e9e15c.index.js.LICENSE.txt
-rw-------. 1 u0_a567 u0_a567  89K Jan  1 13:42 vendors-node_modules_babylonjs_core_Misc_dds_js.index.js
-rw-------. 1 u0_a567 u0_a567  957 Jan  1 13:42 vendors-node_modules_babylonjs_core_Misc_dds_js.index.js.LICENSE.txt
-rw-------. 1 u0_a567 u0_a567 139K Jan  1 13:42 vendors-node_modules_babylonjs_core_Misc_tools_js.index.js
-rw-------. 1 u0_a567 u0_a567  733 Jan  1 13:42 vendors-node_modules_babylonjs_core_Misc_tools_js.index.js.LICENSE.txt

Finally got it to work properly. Looks like a bug in a webpack. Fix in webpack.config.js:

output: { 
    chunkFormat: false, 
}