Node.js 为什么在节点中使用webpack节点外部?
我正在使用webpack捆绑我的typescript节点代码 我使用Node.js 为什么在节点中使用webpack节点外部?,node.js,webpack,Node.js,Webpack,我正在使用webpack捆绑我的typescript节点代码 我使用webpack node externals来避免编译期间node_模块中出现错误 webpack节点externals说,允许您定义externals—不应捆绑的模块 但是为什么呢?Webpack应该打包开始打包所需的所有内容,对吗?它可以提取和删除我不使用的模块。(例如树摇) 如果我使用webpack节点externals,那么我必须在prod文件夹中执行npmi,以获取所有依赖项 我认为这是网页所能做的错失要点。对吗?我认
webpack node externals
来避免编译期间node_模块中出现错误
webpack节点externals
说,允许您定义externals—不应捆绑的模块
但是为什么呢?Webpack应该打包开始打包所需的所有内容,对吗?它可以提取和删除我不使用的模块。(例如树摇)
如果我使用webpack节点externals
,那么我必须在prod文件夹中执行npmi
,以获取所有依赖项
我认为这是网页所能做的错失要点。对吗?我认为你是对的,在你的情况下,捆绑到一个文件会更有意义。似乎是为使用NodeJS库而设计的,而不是独立的应用程序。从他们的: 例如,在编写节点库时,您可能希望将代码拆分为多个文件,并使用Webpack将它们捆绑起来。但是,您不希望将代码与其整个节点模块依赖项捆绑在一起,原因有二:
我不同意关于Webpack不是为捆绑节点脚本而设计的评论。不幸的是,有太多的第三方库不能很好地使用Webpack(正如我今天刚刚发现的那样),所以从实用角度讲,您最好还是在分发文件夹中安装模块。这是因为node\u modules/中的二进制依赖关系 Webpack将从node_modules文件夹加载模块并将其捆绑 在里面这对于前端代码很好,但后端模块通常 没有为此做好准备(即以奇怪的方式使用require)甚至 更糟糕的是二进制依赖关系 我看了这个解释,你可以在这里看到我的研究:
然后我必须在prod文件夹中执行npm I以获取所有依赖项。-这是你无论如何都应该做的。Webpack无法绑定节点本机模块,因为它们是通用的。似乎您误解了Web包在节点应用程序中的作用。有可能您根本不需要它。是的,在节点应用程序上可能不需要它。webpack不能捆绑fs、path之类的东西,也不能捆绑您安装的二进制模块。