【问题标题】:Cannot use import statement outside a module in Lambda function无法在 Lambda 函数中的模块外部使用导入语句
【发布时间】:2020-05-14 00:44:04
【问题描述】:

我创建了一个 lambda 函数来获取存储在 dynamodb 中的项目列表。然后我执行了 npm run build 命令,之后我得到了 .js 文件。我将 dist 内容与节点模块 webpack.config.js 和 package.json 一起压缩并上传。当我尝试对其进行测试时,出现以下错误。但据我检查,代码中没有错误。

{
  "errorType": "Runtime.UserCodeSyntaxError",
  "errorMessage": "SyntaxError: Cannot use import statement outside a module",
  "trace": [
    "Runtime.UserCodeSyntaxError: SyntaxError: Cannot use import statement outside a module",
    "    at _loadUserApp (/var/runtime/UserFunction.js:98:13)",
    "    at Object.module.exports.load (/var/runtime/UserFunction.js:140:17)",
    "    at Object.<anonymous> (/var/runtime/index.js:43:30)",
    "    at Module._compile (internal/modules/cjs/loader.js:956:30)",
    "    at Object.Module._extensions..js (internal/modules/cjs/loader.js:973:10)",
    "    at Module.load (internal/modules/cjs/loader.js:812:32)",
    "    at Function.Module._load (internal/modules/cjs/loader.js:724:14)",
    "    at Function.Module.runMain (internal/modules/cjs/loader.js:1025:10)",
    "    at internal/main/run_main_module.js:17:11"
  ]
}

【问题讨论】:

  • 在你的代码中找到所有“import”的实例,看看有没有看起来不靠谱的。

标签: node.js aws-lambda


【解决方案1】:

我在节点uuid 模块中遇到了同样的错误。如下导入和使用它解决了我的问题:

'use strict';
const uuid = require('uuid');   // <-- how to import

exports.hello = async (event) => {
   // ...

   uniqueId = uuid.v4();  // <-- how to use it

   // ...
};

【讨论】:

    【解决方案2】:

    您的导入有问题。查看您的代码(导入部分)并查看您的 IDE 是否检测到任何错误。就我而言,它是:

    import Jimp from 'jimp/es'

    我改成

    import Jimp from 'jimp'

    现在一切正常。

    【讨论】:

      猜你喜欢
      • 2020-03-15
      • 2022-09-28
      • 2023-02-08
      • 2021-03-16
      • 2021-01-05
      • 1970-01-01
      • 1970-01-01
      • 2021-10-02
      • 1970-01-01
      相关资源
      最近更新 更多