AWS CDK——找不到模块“@aws-cdk/aws-ec2”

AWS CDK -- Cannot find module '@aws-cdk/aws-ec2'

我昨天刚开始玩 AWS CDK,我发现了一些很奇怪的东西。

首先,我将 TypeScript 用于我的 CDK 应用程序(我使用 cdk init --language typescript 生成项目文件,并尝试导入 aws-ec2 模块所以这就是我所做的:

import cdk = require('@aws-cdk/core');
import ec2 = require('@aws-cdk/aws-ec2');

export class vpcStack extends cdk.Stack {
  constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {

//.... all other codes go here....

但是,当以这种方式导入 aws-ec2 模块时,我在尝试部署堆栈时遇到了这个错误:

⨯ Unable to compile TypeScript:
lib/cdk-type_script-stack.ts:2:22 - error TS2307: Cannot find module '@aws-cdk/aws-ec2'.

2 import ec2 = require('@aws-cdk/aws-ec2');
                       ~~~~~~~~~~~~~~~~~~

Subprocess exited with error 1

这很奇怪,因为 API docs right here 清楚地说明了我应该如何在 typescript

中导入 aws-ec2 模块

我错过了什么吗?任何帮助将不胜感激,也在此先感谢!

导入使用前需要安装node包

在命令行中执行以下命令为 aws-cdk 安装 npm 包

npm i @aws-cdk/aws-ec2
npm install (for install lib)
npm run build (for compile your code)

之后,您可以运行:

cdk synth
cdk deploy

您的 npm 版本可能与 @aws-cdk/pipelines 的版本不兼容,如下所述:https://github.com/aws/aws-cdk/issues/13541#issuecomment-801606777

除了@juned-ashan 的回答之外,请确认您正在安装与您的 cdk 版本(以及安装的其他 cdk 模块)相对应的正确模块版本。

例如:

$ npm install --save @aws-cdk/aws-ec2@1.10.0

注意:积分不足,无法在 Juned 的回答中添加此评论。