【发布时间】:2020-10-13 09:42:06
【问题描述】:
考虑使用 NodeJS 后端的全栈应用程序项目。
-
package.json包含 both 前端(如vue、vuex等)和后端(如body-parser、express等)的依赖项。李> - 前端入口点 (
EntryPoint-FrontEnd.js) 和后端入口点 (EntryPoint-BackEnd.js) 由不同的 Webpack 配置构建;主要区别在于后端使用webpack-node-externals 和target: "node"。 - 前端的依赖项被捆绑到
EntryPoint-FrontEnd.js,但EntryPoint-BackEnd.js使用webpack-node-externals访问依赖项。
现在:如何仅将那些使用 EntryPoint-BackEnd.js 的依赖项复制到 02-ProductionBuild
webpack-node-externals?
我很高兴能通过webpack-node-externals 联系到它,但如果不可能,欢迎使用其他工具。
基本做法是将整个项目部署到通过npm install 托管和安装依赖项。
但是,我们在服务器中运行应用程序所需的只是 02-ProductionBuild 文件夹,其中包括 EntryPoint-BackEnd.js 的依赖项。
【问题讨论】:
-
#1 你能改进你的源代码管理吗? #2 总而言之,您的挑战是:如何将特定的 npm 库移动到自定义文件夹?
-
@JRichardsz 感谢您的评论。 “你能改进你的源代码管理吗?” - 我总是能够改进我的源代码管理,但我这样做是基于逻辑和理由,而不是“因为每个人都这样做”。所以,建设性的批评是受欢迎的。 “总而言之,您的挑战是:如何将特定的 npm 库移动到自定义文件夹?” - 确实如此,但问题是库正在使用其他库,因此“特定”不是
dependencies的一部分。 -
不确定你的问题是什么,但听起来你已经过度设计了一个不需要存在的问题,你为什么要尝试共享 node_modules (我不会,但即使在我当前的工作项目是否不需要任何困难或奇怪的 webpack 模块)?
-
@Dominic
"why are you trying to share node_modules",因为后端应用程序 (EntryPoint-BackEnd.js) 需要其中的一部分。如果我们尝试将它们捆绑到EntryPoint-BackEnd.js,webpack 将投射警告并且可能应用程序将无法正常工作。如果开始 google 这个警告,“使用webpack-node-externals”将被推荐。