由于使用了需求AND导入,无服务器部署失败

时间:2019-08-12 18:02:07

标签: javascript amazon-web-services aws-lambda serverless-framework serverless

我知道在同一文件中使用importrequire语句是一种不好的做法,但我听说它不会引起任何问题。
为什么我的lambda会失败(运行yarn run local时),并在遇到import语句时抱怨“意外标识符”?
Here's the current codebase。问题出在functions / edge.js文件中。

编辑:很抱歉,我没有明确提出我的问题。用看似等效的const middleware = require('@sapper/server');替换import语句会导致错误:找不到模块-使用import,即使在生产过程中,它也可以很好地工作。

1 个答案:

答案 0 :(得分:1)

由于AWS Lambda在节点上运行,并且使用的节点AWS Lambda版本不支持import关键字。

有关NodeJS plans to support import/export es6 (es2015) modules的更多信息

编辑:正如@Michael在评论中所述,您需要安装正确的软件包。通过使用npm或查看软件包的位置(我猜您应该正确遵循sapper.svelte的说明)。由于该软件包不存在,import的失败方式与require相同。这不是“导入与需求”问题,而是不存在的包装问题。