如何一次性将JS/TS项目所有AWS CDK包更新到指定版本且适配CI/CD
一次性更新JavaScript/TypeScript项目AWS CDK依赖到指定版本的方案
本方案无需额外工具,可直接在CI/CD流水线中运行,且仅修改CDK相关依赖版本,不会影响项目内其他依赖。
前置准备
提前确认需要升级的目标CDK版本,下文以环境变量TARGET_CDK_VERSION指代该版本值,CI/CD中可直接将其设置为流水线变量,无需修改执行脚本。
执行步骤
- 提取项目内所有CDK相关依赖名
执行以下node原生命令,无需安装jq等额外工具即可直接运行:
CDK_DEPS=$(node -e "const pkg = require('./package.json'); const allDeps = [...Object.keys(pkg.dependencies || {}), ...Object.keys(pkg.devDependencies || {})]; console.log(allDeps.filter(dep => dep.startsWith('aws-cdk') || dep.startsWith('@aws-cdk/')).join(' '))")
该命令会自动读取package.json的生产和开发依赖,过滤出所有aws-cdk开头、@aws-cdk/开头的CDK相关依赖包名。
- 安装指定版本的CDK依赖
根据你使用的包管理工具执行对应命令,该命令只会更新上一步提取到的CDK依赖,不会修改其他依赖的版本:
- 使用npm:
npm install $CDK_DEPS@$TARGET_CDK_VERSION
- 使用yarn:
yarn add $CDK_DEPS@$TARGET_CDK_VERSION
- 使用pnpm:
pnpm add $CDK_DEPS@$TARGET_CDK_VERSION
特殊场景适配
如果仅需要在CI/CD运行时临时使用指定版本CDK依赖,不需要修改项目内的package.json和锁文件,可在安装命令后添加对应参数:
- npm/pnpm添加
--no-save参数 - yarn添加
--no-lockfile参数
验证更新结果
执行以下命令即可校验当前CDK版本是否符合预期:
npx cdk --version
内容的提问来源于stack exchange,提问作者marcuse
相关产品推荐
相关产品推荐

