Skip to content

Commit 22133ce

Browse files
committed
ci: add deduplicate:check script and run on precommit and CI
- `--list --fail` will make it error out with a list of the deps that need deduplication - add yarn-deduplicate as a devDep since it's now used in a few places and would be good to cache install of it - ironically, adding it created a duplicate dep on semver, which made it fail precommit until I usd it to resolve that
1 parent d053912 commit 22133ce

File tree

3 files changed

+33
-9
lines changed

3 files changed

+33
-9
lines changed

.github/workflows/nodejs.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ on:
55
types: [opened, synchronize, reopened]
66

77
jobs:
8-
lint:
8+
lint-and-dedupe:
99
runs-on: ubuntu-latest
1010

11-
name: Lint on node 10.x and ubuntu-latest
11+
name: Lint & Deduplicate deps on node 10.x and ubuntu-latest
1212

1313
steps:
1414
- uses: actions/checkout@v1
@@ -23,6 +23,9 @@ jobs:
2323
- name: Lint codebase
2424
run: yarn lint:post-build
2525

26+
- name: Deduplicate dependencies
27+
run: yarn deduplicate:check
28+
2629
test:
2730
runs-on: ${{ matrix.os }}
2831

package.json

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@
3030
"test:post-build": "node dist/index.js test",
3131
"start": "tsc -p tsconfig.json --watch",
3232
"release": "np",
33-
"deduplicate": "npx yarn-deduplicate -s fewer yarn.lock"
33+
"deduplicate": "yarn-deduplicate -s fewer yarn.lock",
34+
"deduplicate:check": "yarn-deduplicate -s fewer yarn.lock --list --fail"
3435
},
3536
"files": [
3637
"dist",
@@ -125,11 +126,12 @@
125126
"rollup-plugin-postcss": "^2.5.0",
126127
"styled-components": "^5.0.1",
127128
"tiny-invariant": "^1.1.0",
128-
"tiny-warning": "^1.0.3"
129+
"tiny-warning": "^1.0.3",
130+
"yarn-deduplicate": "^2.1.1"
129131
},
130132
"husky": {
131133
"hooks": {
132-
"pre-commit": "pretty-quick --staged --pattern '!test/tests/lint/**' && yarn lint && doctoc README.md"
134+
"pre-commit": "pretty-quick --staged --pattern '!test/tests/lint/**' && yarn lint && yarn deduplicate:check && doctoc README.md"
133135
}
134136
},
135137
"prettier": {

yarn.lock

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1391,6 +1391,11 @@
13911391
semver "^6.3.0"
13921392
tsutils "^3.17.1"
13931393

1394+
"@yarnpkg/lockfile@^1.1.0":
1395+
version "1.1.0"
1396+
resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31"
1397+
integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==
1398+
13941399
abab@^2.0.0:
13951400
version "2.0.3"
13961401
resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a"
@@ -2376,6 +2381,11 @@ commander@^2.11.0, commander@^2.20.0:
23762381
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
23772382
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
23782383

2384+
commander@^5.1.0:
2385+
version "5.1.0"
2386+
resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"
2387+
integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
2388+
23792389
commondir@^1.0.1:
23802390
version "1.0.1"
23812391
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
@@ -7322,10 +7332,10 @@ semver@6.x, semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0:
73227332
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
73237333
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
73247334

7325-
semver@^7.1.1:
7326-
version "7.1.1"
7327-
resolved "https://registry.yarnpkg.com/semver/-/semver-7.1.1.tgz#29104598a197d6cbe4733eeecbe968f7b43a9667"
7328-
integrity sha512-WfuG+fl6eh3eZ2qAf6goB7nhiCd7NPXhmyFxigB/TOkQyeLP8w8GsVehvtGNtnNmyboz4TgeK40B1Kbql/8c5A==
7335+
semver@^7.1.1, semver@^7.3.2:
7336+
version "7.3.2"
7337+
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938"
7338+
integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==
73297339

73307340
serialize-javascript@^1.7.0:
73317341
version "1.9.1"
@@ -8577,3 +8587,12 @@ yargs@^15.3.1:
85778587
which-module "^2.0.0"
85788588
y18n "^4.0.0"
85798589
yargs-parser "^18.1.1"
8590+
8591+
yarn-deduplicate@^2.1.1:
8592+
version "2.1.1"
8593+
resolved "https://registry.yarnpkg.com/yarn-deduplicate/-/yarn-deduplicate-2.1.1.tgz#500a3010e4bdee3c3250936e210910c7cae3d75d"
8594+
integrity sha512-lbFJGOMnqG/ncGjNBUt+JG4qfAGqeh8o9i4i5LXqNBdQ8ov8av6T1jizWQqr+zLPLCOqp/BYBZz8FymPQSR4RA==
8595+
dependencies:
8596+
"@yarnpkg/lockfile" "^1.1.0"
8597+
commander "^5.1.0"
8598+
semver "^7.3.2"

0 commit comments

Comments
 (0)