typescript - CDK სინთეზი NodejsFunction-ის ბანდლირების შეცდომით - გთხოვთ განაახლოთ თქვენი ლოკფაილი `npm install`-ით წინ დაწინაურებამდე
ვცდილობ AWS CDK-ით Lambda-ს შექმნას, საიდანაც მე ეს შეცდომა მომდის:
"npm ERR! npm ci შეუძლია პაკეტების დაყენება მხოლოდ მაშინ, როცა თქვენი package.json და package-lock.json ან npm-shrinkwrap.json სინქრონშია. გთხოვთ განაახლოთ თქვენი lock ფაილი npm install გამოყენებით წინსვლის წინ."
ამის შემდეგ ის აკეთებს შეცდომას "დაკარგულია: [პაკეტის სახელი] lock ფაილიდან" ყველა პაკეტისთვის.
ლამბდა ფოლდერი:
- helpers
- node_modules
- index.ts
- LambdaFunction.test.ts
- package.json
- package-lock.json
ჩემი მოქმედებები:
- მე წარმატებით დავაყენე ყველა
node-modulesLambda ფოლდერში გადასვლისა და "npm install" ბრძანების შესრულების შემდეგ. ტერმინალში არ გამოჩენილა შეცდომები. - მე დამატებული მაქვს საჭირო პაკეტები
bundling.nodeModules-შიNodejsFunctionფუნქციის თვისებებში. - ფაილში
package.json, მე დავრწმუნდები, რომ"type": "module"არის - მოდული Lambda-გამომგზავნელი ფუნქციიდან ვნახე ყველაფერი კოდი გარდა
export async function handler(event: any, context: object) {}სკელსისა და კიდევ ყოველთვის მივიღებ შეცდომას
სტეკ კოდი:
const lambdaFunction = new NodejsFunction(this, `intoNSQueueConsumer`, {
...defaultProps,
description: "description",
entry: join(__dirname, "../src/lambda-handlers/lambdaFunction/index.ts"),
environment: {
ENVIRONMENT: context.environment,
},
bundling: {
nodeModules: ["axios", "axios-retry", "crypto-js"], // Need to be installed
externalModules: ["aws-sdk"], //already available in the runtime
},
});
რედაქტირება :
- ყველა node-modules-ის აღების და ნებისმიერი ერთ-ერთი პაკეტის ინსტალაციის დროს გამოჩნდება შეცდომა. შესაბამისად, ეს პაკეტზე დამოკიდებული არ არის.
- აქ არის დოკუმენტაცია
NodejsFunction-ისთვის
პასუხი #1
ამ შეცდომის გამოსწორება არის depsLockFilePath-ის დამატება ასეთად new NodejsFunction პარამეტრებში:
depsLockFilePath: join(__dirname, "../src/lambda-handlers/lambdaFunction/package-lock.json"),თქვენ შეგიძლიათ აქ მეტი ინფორმაცია გამოთვალოთ.