node.js - Lambda 失败并显示 "Cannot find module..."

我正在使用 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/

相关文章:

sql-server - SSIS:发生 OLE DB 错误。错误代码 0x80004005,对方过

google-cloud-bigtable - BigTable是否允许设置微时间戳粒度

javascript - 雅格斯 : access processed argv in fail f

google-cloud-functions - ingressSettings = ALLOW_I

amazon-web-services - AWS Lambda 不等待代码上传到 Terrafor

ios - 如何不从照片库 iOS 中获取屏幕截图

swift - PHPhotoLibrary 出错,无法保存视频

xaml - 如何在使用 xamarin shell 时更改状态栏颜色

graphql - Apollo Graphql : Rename schema for backw

r - 无法在 R Studio 中安装包