Node.js AWS lambda语法错误:意外的令牌导入

Node.js AWS lambda语法错误:意外的令牌导入,node.js,aws-lambda,aws-api-gateway,serverless-framework,aws-serverless,Node.js,Aws Lambda,Aws Api Gateway,Serverless Framework,Aws Serverless,我遵循了serverless-stack.com的指南,在一个mono repo中将api划分为多个服务。 代码在seed.run中部署得很好,但是当我尝试从reactjs webclient访问某些端点时,如果从api中获得错误 我试图将错误记录到console.log中,但它没有显示更多细节。从stackowerflow这里的其他问题来看,我猜想这可能与ES6或babel有关,但我不确定 My.babelrc看起来像这样: { "plugins": ["source-map-suppor

我遵循了serverless-stack.com的指南,在一个mono repo中将api划分为多个服务。 代码在seed.run中部署得很好,但是当我尝试从reactjs webclient访问某些端点时,如果从api中获得错误

我试图将错误记录到console.log中,但它没有显示更多细节。从stackowerflow这里的其他问题来看,我猜想这可能与ES6或babel有关,但我不确定

My.babelrc看起来像这样:

{
  "plugins": ["source-map-support", "transform-runtime"],
  "presets": [
    ["env", { "node": "8.10" }],
    "stage-3"
  ]
}
我在AWS(cloudwatch)收到以下错误:

你知道我可能遗漏了什么吗

更新:

我的上帝:

{
  "presets": [
      [
          "env",
          {
              "targets": {
                  "node": "8.1"
              }
          }
      ]
  ]
}
My webpack.config.js

const nodeExternals = require("webpack-node-externals");

module.exports = {
  entry: slsw.lib.entries,
  target: "node",
  // Generate sourcemaps for proper error messages
  devtool: 'source-map',
  // Since 'aws-sdk' is not compatible with webpack,
  // we exclude all node dependencies
  externals: [nodeExternals()],
  mode: slsw.lib.webpack.isLocal ? "development" : "production",
  optimization: {
    // We no not want to minimize our code.
    minimize: false
  },
  performance: {
    // Turn off size warnings for entry points
    hints: false
  },
  // Run babel on all .js files and skip those in node_modules
  module: {
    rules: [
      {
        test: /\.js$/,
        loader: "babel-loader",
        include: __dirname,
        exclude: /node_modules/
      }
    ]
  }
};
Package.json

{
  "name": "api",
  "version": "1.1.4",
  "description": "Backend API for APP.",
  "main": "handler.js",
  "scripts": {
    "test": "jest"
  },
  "devDependencies": {
    "@types/node": "^10.12.18",
    "body-parser": "^1.18.3",
    "nodemon": "^1.18.9",
    "aws-sdk": "^2.224.1",
    "babel-cli": "^6.26.0",
    "babel-core": "^6.26.0",
    "babel-loader": "^7.1.2",
    "babel-polyfill": "^6.26.0",
    "babel-preset-env": "^1.6.1",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-es2017": "^6.24.1",
    "babel-plugin-source-map-support": "^1.0.0",
    "babel-plugin-transform-runtime": "^6.23.0",
    "babel-preset-env": "^1.6.1",
    "babel-preset-stage-3": "^6.24.1",
    "jest": "^21.2.1",
    "serverless-offline": "^3.18.0",
    "serverless-webpack": "^5.1.0",
    "webpack": "^4.2.0",
    "webpack-node-externals": "^1.6.0"
  },
  "dependencies": {
    "babel-runtime": "^6.26.0",
    "source-map-support": "^0.4.18",
    "stripe": "^5.8.0",
    "uuid": "^3.2.1"
  }
}

我使用Babel版本6成功地将代码部署到运行Node 8.1的lambda函数中。我的问题和你上面提到的完全一样。我的解决方案是:

.babelrc
文件 来自
package.json的开发依赖项
来自
package.json的脚本

导入语法在节点v8.x.x中不可用。使用require,或者像Bogdan Alexandru Militaru那样用babel编译它

尝试将
模块:“commonjs”
选项传递到env预设。这应该可以让你们使用ES6模块,并让它们在节点中工作。嗨,你们能再给我一些指导吗?在package.json中,我在哪里设置它?像这样?{“插件”:[“源代码映射支持”,“转换运行时”],“预设”:[[“环境”,“节点”:“8.10”,“模块”:“commonjs”}],“stage-3”]}嗨,不幸的是,这似乎对我不起作用。我已经用新的babelrc、webpack和package.json文件更新了我的帖子。我建议您只需在本地构建,并查看代码的格式。
模块“列表”
中似乎有问题,可能是奇怪的导入。这很奇怪,因为index.js中从一开始就没有错误,或者那里没有任何
import*作为XYZ从某物导入
?你能试着把一个未使用的导入放在那里只是为了测试吗?我可以和你一起查看你的代码,但我在你的个人资料中找不到任何联系信息。或者,如果您可以发布更多关于如何从“/libs/dynamodb lib”
将此导出导出为dynamoDbLib的信息。我如何在本地构建它?我只找到了调用本地函数的方法?我试图从list.js文件中删除导入,现在错误出现在下一行:export async function main(event,context){您可以通过以下地址与我的联系:tstarkdk@gmail.com如果您想与我联系。请尝试查看我的,我使用
ask cli
进行部署,但这一部分在这里并不重要。请尝试使用命令
“build”:“babel./PROJECT\u PATH-d dist”
所以你的项目将被传输到根目录下名为
dist
的文件夹中。然后你可以看看你的代码。让我知道进展如何,如果没有,我们可以聊天。我使用seed部署到AWS。我不太确定如何使用我的package.json中的build命令?我在gitlab有我的repo,也许我可以邀请你参加,所以你可以看到它,如果你有一个用户在那里?
{
  "name": "api",
  "version": "1.1.4",
  "description": "Backend API for APP.",
  "main": "handler.js",
  "scripts": {
    "test": "jest"
  },
  "devDependencies": {
    "@types/node": "^10.12.18",
    "body-parser": "^1.18.3",
    "nodemon": "^1.18.9",
    "aws-sdk": "^2.224.1",
    "babel-cli": "^6.26.0",
    "babel-core": "^6.26.0",
    "babel-loader": "^7.1.2",
    "babel-polyfill": "^6.26.0",
    "babel-preset-env": "^1.6.1",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-es2017": "^6.24.1",
    "babel-plugin-source-map-support": "^1.0.0",
    "babel-plugin-transform-runtime": "^6.23.0",
    "babel-preset-env": "^1.6.1",
    "babel-preset-stage-3": "^6.24.1",
    "jest": "^21.2.1",
    "serverless-offline": "^3.18.0",
    "serverless-webpack": "^5.1.0",
    "webpack": "^4.2.0",
    "webpack-node-externals": "^1.6.0"
  },
  "dependencies": {
    "babel-runtime": "^6.26.0",
    "source-map-support": "^0.4.18",
    "stripe": "^5.8.0",
    "uuid": "^3.2.1"
  }
}
{
    "presets": [
        [
            "env",
            {
                "targets": {
                    "node": "8.1"
                }
            }
        ]
    ]
}
  "devDependencies": {
    "@types/node": "^10.12.18",
    "body-parser": "^1.18.3",
    "express": "^4.16.4",
    "nodemon": "^1.18.9",
    "babel-cli": "^6.26.0",
    "babel-core": "^6.26.0",
    "babel-loader": "^7.1.2",
    "babel-polyfill": "^6.26.0",
    "babel-preset-env": "^1.6.1",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-es2017": "^6.24.1"
  },
    "clean": "rm -rf dist",
    "build": "npm run clean && babel ./lambda/custom/ -d dist && cp lambda/custom/package.json dist/",
    "start": "nodemon",
    "serveo": "ssh -R 80:localhost:3000 serveo.net",
    "deploy": "npm run build && ask deploy",