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