我有一个 node_modules 的路径所在的层nodejs/node14/node_modules
。
使用该层,我尝试在 Lambda 函数中导入一个包,例如“aws-cloudfront-sign”,如下所示:
import cfsign from 'aws-cloudfront-sign'
我收到错误消息
Cannot find package 'aws-cloudfront-sign' imported from /var/task/signer.js\nDid you mean to import aws-cloudfront-sign/lib/cloudfrontUtil.js?
但是如果我像这样导入包:
import cfsign from '/opt/nodejs/node14/node_modules/aws-cloudfront-sign/lib/cloudfrontUtil.js'
它成功了。
你知道为什么吗?如何正确导入包?
这似乎是一个错误。它发生在图层和 SDK 中。Github 上有许多类似的未解决问题:
ES6 导入在 @aws-sdk/client-iotsitewise 中不起作用
如您所见,目前唯一的解决方法似乎是使用绝对路径。例如:
import { DynamoDB } from 'aws-sdk;'
失败,而
import AWS from '/var/runtime/node_modules/aws-sdk/lib/aws.js';
const { DynamoDB } = AWS;
将工作。
我建议您将您的声音添加到现有的未解决问题中,以帮助确保它得到关注。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句