【发布时间】:2017-10-16 15:56:15
【问题描述】:
我开发了一个带有 React 前端和后端节点服务器的应用程序。 React 依赖项由 webpack 捆绑到 bundle.min.js 中,但是当我将 server.js 放在容器/VM 的任何地方时,我如何确保安装它的依赖项(即 express、winston、body-parser 等)。
npm install --production
将在服务器上安装我的生产依赖项,但这将包括 react、react-dom、d3 等所有内容。
我尝试使用单独的 webpack 配置来制作服务器捆绑包,类似于,
{
name: 'server',
target: 'node',
entry: path.resolve(__dirname, 'src', 'server', 'app.js'),
devtool: 'cheap-module-source-map',
output: {
path: path.resolve(__dirname, 'dist', 'server'),
filename: 'server.bundle.js'
}
},
node: {
__dirname: false
}
但是当我启动服务器时,我收到了Cannot Get / 错误。
为生产构建仅安装与我的 express 服务器相关的依赖项的最佳方法是什么?
【问题讨论】:
-
如果你在做服务器端渲染你会需要它们,如果你的服务器只提供一个 API,你可以拆分两个应用程序。
-
@GabrielBleu 拆分成两个应用程序似乎有点让人头疼。我更愿意将它们保留为一个,这样我就可以运行
npm run build并将所有内容和所有必要的依赖项移植到 dist/ 目录。这不标准吗? -
另外,我确实计划在不久的将来实现服务器端渲染。
-
如果您需要/觉得他们应该分开就这样做,两个项目一个用于后端,另一个用于前端,最后 webpack 构建将包括您在前端源上调用的那些部门只是(当然除了你做错了什么)
-
你可以把你所有的前端依赖都作为dev依赖。客户端包仍然会包含它需要的东西,
npm install --production只会在容器上安装服务器依赖项。
标签: javascript node.js express webpack development-environment