Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用AWS Lambda安装npm_Javascript_Node.js_Amazon Web Services_Npm_Aws Lambda - Fatal编程技术网

Javascript 使用AWS Lambda安装npm

Javascript 使用AWS Lambda安装npm,javascript,node.js,amazon-web-services,npm,aws-lambda,Javascript,Node.js,Amazon Web Services,Npm,Aws Lambda,我正在用Javascript编写AWS Lambda函数。 我需要使用synchronize.js库,所以我运行了npm安装synchronize。 本地一切正常,但当我将*.zip上传到AWS并运行时,会出现以下错误: "errorMessage": "`/var/task/node_modules/fibers/bin/linux-x64-v8-3.14/fibers.node` is missing. Try reinstalling `node-fibers`?" 我认为它期望np

我正在用Javascript编写AWS Lambda函数。 我需要使用synchronize.js库,所以我运行了
npm安装synchronize
。 本地一切正常,但当我将*.zip上传到AWS并运行时,会出现以下错误:

  "errorMessage": "`/var/task/node_modules/fibers/bin/linux-x64-v8-3.14/fibers.node` is missing. Try reinstalling `node-fibers`?"

我认为它期望npm安装不同的二进制文件版本。如何修复它?

因为AWS Lambda不为您执行
npm安装
,任何需要二进制构建步骤的npm模块都可能会遇到问题,具体取决于模块的功能、构建方式等。我不熟悉synchronize.js,但它可能需要在Amazon Linux上构建才能在AWS Lambda内部成功

因此,你必须:

  • 在运行Amazon Linux的机器上安装并部署您的
    npm
  • 用异步代码(回调、承诺或异步库)替换synchronize.js

  • 总的来说,如果可能的话,我推荐2号。您实际上并没有问特定的问题,所以我不确定这是否适合您,但希望这能为您提供一些指导。

    AWS Lambda在运行之前不会运行
    npm install
    。您使用的任何库也应该压缩。我在zip文件中包含node_modules目录。Amazon试图找到node_modules/fibers/bin/linux-x64-v8-3.14/。。但是npm安装node_modules/fibers/bin/linux-x64-v8-4.6文件夹