Javascript 由于使用了require和import,无服务器部署失败

Javascript 由于使用了require和import,无服务器部署失败,javascript,amazon-web-services,aws-lambda,serverless-framework,serverless,Javascript,Amazon Web Services,Aws Lambda,Serverless Framework,Serverless,我知道在同一个文件中使用import和require语句是一种不好的做法,但我听说这不会导致任何问题。 为什么我的lambda会失败(当运行warn run local)并在遇到import语句时抱怨“意外标识符”? . 问题出在functions/edge.js文件中 编辑:很抱歉,我没有清楚地阐述我的问题。用看似等效的const middleware=require(“@sapper/server”)替换import语句导致一个错误:它找不到模块-通过导入,它工作得非常好,即使在生产过程中也

我知道在同一个文件中使用
import
require
语句是一种不好的做法,但我听说这不会导致任何问题。
为什么我的lambda会失败(当运行
warn run local
)并在遇到
import
语句时抱怨“意外标识符”?
. 问题出在functions/edge.js文件中


编辑:很抱歉,我没有清楚地阐述我的问题。用看似等效的
const middleware=require(“@sapper/server”)替换import语句导致一个错误:它找不到模块-通过导入,它工作得非常好,即使在生产过程中也是如此

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

更多关于


编辑:如注释中所述,您需要安装正确的软件包。使用
npm
或查看软件包的位置(我想您应该正确地遵循说明)<代码>导入
将以与
要求
相同的方式失败,因为包不存在。不是“导入vs require”的问题,而是一个不存在的包问题。

我如何使用require()执行与我在
functions/edge.js中执行的相同导入?与您在该文件中执行所有其他导入的方式相同-使用
const middleware=require(“modulename”)
@searkingsolutions,正如Michael所说,
require(“@sapper/server”);
在本例中,导入只不过是一个花哨的要求。@Michael这就是问题所在:虽然import语句可以很好地工作,
require(“@sapper/server”)
而不是导入它会抛出一个错误-它不知怎么地找不到模块。您确定这就是使用require导入名称空间的方式吗?肯定-看起来您缺少包JSON依赖项部分中的
@sapper/server
,这将导致找不到它。
npm i--save@sapper/server