Run bump-cdk
in a directory with a package.json
that contains AWS CDK Dependencies. After running, you should see your cdk dependencies pinned and updated!
$ npm i -g bump-cdk
or
$ yarn global add bump-cdk
or
$ npx bump-cdk
A common issue when working with AWS CDK is a version mismatch issue. Because of the way CDK's modules interface together, they must always be on the same version as each other More Information.
This for example might cause an error:
{
"dependencies": {
"@aws-cdk/core": "1.30.0",
"@aws-cdk/aws-lambda": "1.51.0"
}
}
This introduces maintenance overhead by forcing you to always have your CDK dependencies matching.
Additionally, because of NPM/Yarn behavior, when you add dependencies, you often end up with fluid version ranges. More Information.
Example:
$ yarn add @aws-cdk/core
{
"dependencies": {
"@aws-cdk/core": "^1.30.0"
}
}
This means that the module is "Compatible with version" 1.30.0
, but this version will be set in the lockfile, and dependencies added at a later date can get out of sync.
As a result of this, it is recommended to pin the versions without the semver range modifier.
Usage
$ bump-cdk <project-directory>
Options
--version, -v Outputs the version of bump-cdk
--explicit-version, -e Version to set cdk to
--dry-run Outputs changes, but doesn't modify any files
--help, -h Displays this message
--debug, -d Enable verbose logging
Minimal Example:
import { bumpCdk } from 'bump-cdk';
await bumpCdk(process.cwd());
This defaults debug
and dryRun
mode as well as pulls the latest version of aws-cdk
from NPM and sets all dependencies to that version.
You can also pass in some other options:
import { bumpCdk } from 'bump-cdk';
await bumpCdk(process.cwd(), '1.51.0', true, true);
This enables debug
mode and dryRun
mode as well as sets the specific version of aws-cdk
to use.
Pull requests welcome!