Lambda 包括对 node_modules 的依赖

Lambda including dependencies on node_modules

我是 Lambda 的新手,正在尝试了解如何在 node_modules 上部署依赖项。请注意我没有使用无服务器。我正在使用 webpack 来捆绑我的 Lambda 函数。

我想到的第一件事就是将 node_module 依赖项作为 webpack 构建过程的一部分打包为一个文件。但后来我想通了,这不是好事吗?我的下一个选项是将相应的依赖节点模块复制到 lambda 部署 zip 文件夹中。但是我这里的problem/question是

  1. 这是部署依赖项的标准方式吗?
  2. 如果我的依赖项依赖于另一个依赖项,比如说 dependency2 那么我怎么知道这个,我是否也需要复制它?
  3. 有没有我错过的其他标准做事方式?

Is this the standard way of deploying the dependencies?

标准方法是上传包含处理程序文件和 node_modules 目录(如有必要)的 zip 包。

webpack 的方法是创建一个 javascript 文件包,该文件包已将所有依赖项包含在一个文件中(在最简单的情况下)。如果您有依赖于本机绑定的依赖项(例如 bcrypt),您可以将它们从 webpack 中排除,并且通常可以将 bcrypt 包含在 node_modules 目录中。

If my dependency is dependent on another dependency lets say dependency2 then how do I know this and do I need to copy this across as well?

使用标准方式,npm 已经为您处理了这些依赖关系。因此,您所要做的就是将 node_modules 包含在部署包中。

使用 webpack,它会为您处理。只要学会正确配置即可。

作为 webpack 配置的最小示例,您可以使用:

const path = require('path');

module.exports = {
  entry: {
    handler: './handler.js',
  },
  target: 'node',
  output: {
    libraryTarget: 'commonjs',
    path: path.join(__dirname, '.webpack'),
    filename: '[name].js'
  },
};