描述
我有一个使用 nodejs + TypeScript + express
的项目,目前源代码的 *.ts
文件由 webpack
打包,同时利用 webpack-node-externals
忽略了 node_modules
。
当我在 Docker 中部署 bundle.js
时,我需要在目标镜像上运行 npm i --production
来安装依赖项,这会安装在 package.json
中列出的所有模块。
问题:
如果我只使用 lodash
中的一个函数,并不是使用其中的原生部分,那么整个 lodash
模块(4.8MB)仍然会被安装(这是预期的)。
这导致了一个庞大的 node_modules
文件夹,在其中,包内的函数并不总是在 bundle.js
中使用。在使用 Docker 容器化应用程序时,这个问题尤其普遍。
有没有办法在 Webpack 中打包非原生模块,同时保留原生模块?