我知道在同一文件中使用import
和require
语句是一种不好的做法,但我听说它不会引起任何问题。
为什么我的lambda会失败(运行yarn run local
时),并在遇到import
语句时抱怨“意外标识符”?
Here's the current codebase。问题出在functions / edge.js文件中。
编辑:很抱歉,我没有明确提出我的问题。用看似等效的const middleware = require('@sapper/server');
替换import语句会导致错误:找不到模块-使用import,即使在生产过程中,它也可以很好地工作。
答案 0 :(得分:1)
由于AWS Lambda在节点上运行,并且使用的节点AWS Lambda版本不支持import
关键字。
有关NodeJS plans to support import/export es6 (es2015) modules的更多信息
编辑:正如@Michael在评论中所述,您需要安装正确的软件包。通过使用npm
或查看软件包的位置(我猜您应该正确遵循sapper.svelte的说明)。由于该软件包不存在,import
的失败方式与require
相同。这不是“导入与需求”问题,而是不存在的包装问题。