应用package.json中的aws-cdk与aws-cdk-lib包有何区别?
aws-cdk 与 aws-cdk-lib 的核心差异
版本与维护状态
aws-cdk 是 AWS CDK v1版本的核心库,目前已进入维护模式,仅修复严重安全漏洞和bug,不再新增功能或支持新的AWS服务;aws-cdk-lib 是 v2版本的核心库,是当前官方主推、持续迭代的版本,会持续更新AWS服务支持和新特性。包结构设计
- v1的aws-cdk是单体大包,所有AWS服务的构造函数、核心框架逻辑都打包在一起,安装后会引入大量未使用的代码。
- v2采用模块化拆分:核心框架能力(如
App、Stack、基础工具类)集中在aws-cdk-lib,各个AWS服务的高阶构造函数以独立的@aws-cdk/aws-*包发布(后续版本中部分高频服务已合并到aws-cdk-lib,进一步简化依赖)。
代码导入方式
- v1中所有构造都从aws-cdk导入:
import { Stack, Bucket } from 'aws-cdk'; - v2中核心类从aws-cdk-lib导入,服务构造从对应包或aws-cdk-lib的子模块导入:
import { Stack, App } from 'aws-cdk-lib'; import { Bucket } from 'aws-cdk-lib/aws-s3'; // 部分服务已整合到核心库
- v1中所有构造都从aws-cdk导入:
兼容性与迁移
两个包无法在同一项目中混用,API和内部实现存在大量不兼容的破坏性变更。从v1升级到v2需要替换依赖包、调整导入路径、修改使用了过时API的代码。CLI工具关联
v1的CDK CLI工具包含在aws-cdk包中;v2的CLI是独立的aws-cdk包(仅命令行工具,非核心库),需要单独安装或通过项目依赖调用,与aws-cdk-lib配合使用。
内容的提问来源于stack exchange,提问作者Rama Rahul
相关产品推荐
相关产品推荐

