为什么Webpack绑定所有引用的库



在我的项目中,我的条目TypeScript文件中只有一行:

// app.ts
import Phaser from 'phaser'

阶段a是位于我的node_modules文件夹中的依赖项。我的webpack.config.js看起来像这样:

const path = require('path');
module.exports = {
mode: 'production',
devtool: 'source-map',
entry: './src/app.ts',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'app.js',
},
resolve: {
extensions: ['.ts', '.js'],
},
module: {
rules: [
{
test: /.tsx?/,
use: 'ts-loader',
exclude: [/node_modules/],
},
{
test: /.js$/,
exclude: [/node_modules/],
},
]
}
};

奇怪的是,生成的文件包含数百行代码。看起来Webpack捆绑了整个库。不应该是这种情况,因为我排除了node_modules文件夹。

如何让Webpack停止执行此操作?

据我所知,Phaser 3没有树抖动,因此导入Phaser就是导入整个Phaser库及其所依赖的一切。Webpack无法知道你根本没有实际使用过它(也不打算在运行时使用(

最新更新