我是Lambda的新手,正在尝试弄清楚如何在node_modules上部署依赖项。请注意我没有使用无服务器。我正在使用webpack捆绑我的Lambda函数。
我想做的第一件事就是将node_module依赖项作为webpack构建过程的一部分捆绑为一个文件。但后来我发现这不是一件好事吗?我有的下一个选项是将相应的从属节点模块复制到lambda部署zip文件夹中。但我在这里遇到的问题是
答案 0 :(得分:3)
这是部署依赖项的标准方法吗?
标准方法是在必要时上传包含处理程序文件和node_modules
目录的zip包。
webpack方式是创建一个单一的javascript文件包,其中已包含一个文件中的所有依赖项(在大多数情况下)。如果您具有依赖于本机绑定的依赖项(例如bcrypt
),则可以将它们从webpack中排除,并且您可以将bcrypt
正常包含在node_modules
目录中。
如果我的依赖关系依赖于另一个依赖关系,请说依赖关系2然后我如何知道这一点,我是否还需要复制它?
使用标准方式,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'
},
};