【问题标题】:Best way to manage express server dependencies in production env在生产环境中管理快速服务器依赖项的最佳方法
【发布时间】: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


【解决方案1】:

除非您可能会用完文件空间,否则我认为安装所有依赖项都不是问题。与创建两个单独的项目相比,它肯定使可维护性更简单。尝试只在服务器上安装生产包有什么好处?或者更好的是,拥有所有这些有什么缺点?

【讨论】:

    猜你喜欢
    • 2021-05-05
    • 2014-11-19
    • 2020-03-10
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    • 2021-11-04
    • 2013-03-08
    • 1970-01-01
    相关资源
    最近更新 更多