Lambda 包括对 node_modules 的依赖
Lambda including dependencies on node_modules
我是 Lambda 的新手,正在尝试了解如何在 node_modules 上部署依赖项。请注意我没有使用无服务器。我正在使用 webpack 来捆绑我的 Lambda 函数。
我想到的第一件事就是将 node_module 依赖项作为 webpack 构建过程的一部分打包为一个文件。但后来我想通了,这不是好事吗?我的下一个选项是将相应的依赖节点模块复制到 lambda 部署 zip 文件夹中。但是我这里的problem/question是
- 这是部署依赖项的标准方式吗?
- 如果我的依赖项依赖于另一个依赖项,比如说 dependency2 那么我怎么知道这个,我是否也需要复制它?
- 有没有我错过的其他标准做事方式?
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'
},
};
我是 Lambda 的新手,正在尝试了解如何在 node_modules 上部署依赖项。请注意我没有使用无服务器。我正在使用 webpack 来捆绑我的 Lambda 函数。
我想到的第一件事就是将 node_module 依赖项作为 webpack 构建过程的一部分打包为一个文件。但后来我想通了,这不是好事吗?我的下一个选项是将相应的依赖节点模块复制到 lambda 部署 zip 文件夹中。但是我这里的problem/question是
- 这是部署依赖项的标准方式吗?
- 如果我的依赖项依赖于另一个依赖项,比如说 dependency2 那么我怎么知道这个,我是否也需要复制它?
- 有没有我错过的其他标准做事方式?
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'
},
};