2017-09-21 09:39:43 -04:00
|
|
|
All of our npm dependencies are locked via the `yarn.lock` file for the following reasons:
|
|
|
|
|
|
|
|
- our project has lots of dependencies which update at unpredictable times, so it's important that
|
2018-08-04 20:06:14 -04:00
|
|
|
we update them explicitly once in a while rather than implicitly when any of us runs `yarn install`
|
2019-01-08 06:41:24 -05:00
|
|
|
- locked dependencies allow us to reuse yarn cache on CircleCI, significantly speeding up our builds
|
2017-09-21 09:39:43 -04:00
|
|
|
(by 5 minutes or more)
|
|
|
|
- locked dependencies allow us to detect when node_modules folder is out of date after a branch switch
|
|
|
|
which allows us to build the project with the correct dependencies every time
|
|
|
|
|
|
|
|
Before changing a dependency, do the following:
|
|
|
|
|
|
|
|
- make sure you are in sync with `upstream/master`: `git fetch upstream && git rebase upstream/master`
|
|
|
|
- ensure that your `node_modules` directory is not stale by running `yarn install`
|
|
|
|
|
|
|
|
|
|
|
|
To add a new dependency do the following: `yarn add <packagename> --dev`
|
|
|
|
|
|
|
|
To update an existing dependency do the following: run `yarn upgrade <packagename>@<version|latest> --dev`
|
|
|
|
or `yarn upgrade <packagename> --dev` to update to the latest version that matches version constraint
|
|
|
|
in `package.json`
|
|
|
|
|
|
|
|
To Remove an existing dependency do the following: run `yarn remove <packagename>`
|
|
|
|
|
|
|
|
|
|
|
|
Once you've changed the dependency, commit the changes to `package.json` & `yarn.lock`, and you are done.
|