我正在使用 Webpack 打包我的 lambda。我正在使用 CDK 部署它们。
但是,当通过 ApiGateway 测试它们时,我得到了这个:
Lambda execution failed with status 200 due to customer function error: Error: Cannot find module 'apollo-server-lambda'.
这是我的 Webpack 配置:
{
mode: 'production',
entry: {
graphql: './src/lambdas/graphql.ts',
cognito: './src/lambdas/cognito.ts',
'smoke-detector': './src/lambdas/smoke-detector.ts',
},
output: {
libraryTarget: 'commonjs',
path: path.resolve(__dirname, "dist"),
filename: '[name]/[name].js'
},
target: 'node',
externals: [nodeExternals()],
resolve: {
extensions: ['.ts', '.js']
},
module: {
rules: [
loader({
test: /\.ts$/,
use: {
loader: 'ts-loader',
options: {
getCustomTransformers: () => ({
before: [graphqlTag.getTransformer()]
})
}
}
}),
loader({
test: /\.graphqls$/,
use: {
loader: 'graphql-tag/loader',
}
})
]
},
plugins: [
]
}
执行像 node graphql.js
这样的输出文件不会失败。
我做错了什么?
最佳答案
删除
externals: [nodeExternals()]
解决了问题。
它导致依赖项从 bundle 中排除。
关于node.js - Lambda 失败并显示 "Cannot find module...",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60243309/