我正在使用webpack捆绑我的打字稿nodejs代码。
我webpack-node-externals
用来避免在编译期间在node_modules中出错。
webpack-node-externals
说,允许您定义外部-不应该捆绑的模块。
但为什么?Webpack应该捆绑我开始捆绑所需的一切,对吗?它可以提取并删除我不使用的模块。(例如,摇树)。
If I use webpack-node-externals
, then I'll have to do npm i
in my prod folder to get all the dependencies.
I think this is miss the point of webpack can do. right?
Jef*_*ney 14
我认为你是正确的,在你的情况下,捆绑成一个文件会更有意义。webpack-node-external
似乎是为使用 NodeJS 库而设计的,而不是独立的应用程序。从他们的文档:
例如,在编写节点库时,您可能希望将代码拆分为多个文件,并使用 Webpack 将它们捆绑在一起。但是 - 您不希望将代码与其整个 node_modules 依赖项捆绑在一起,原因有两个:
- 它会使你在 npm 上的库膨胀。
- 它违背了整个 npm 依赖项管理。如果您正在使用 Lodash,并且您的库的使用者也具有相同的 Lodash 依赖项,则 npm 确保它只会被添加一次。但是将 Lodash 捆绑到您的库中实际上会使其包含两次,因为 npm 不再管理此依赖项。
作为库的使用者,我希望库代码仅包含其逻辑,并仅说明其依赖项,以便他们可以与我项目中的其余依赖项合并/解析。将代码与依赖项捆绑在一起几乎是不可能的。
我不同意那些认为 Webpack 不是为了捆绑 Node 脚本而设计的评论,因为 Webpack 有一个特定的设置 ( target
)。不幸的是,有太多第三方库不能很好地与 Webpack 搭配使用(正如我今天刚刚发现的那样),所以从实用的角度来说,无论如何你最好在分发文件夹中安装模块。
归档时间: |
|
查看次数: |
3141 次 |
最近记录: |