Skip to content

Commit 381cee4

Browse files
authored
Merge pull request #510 from salesforcecli/mdonnalley/yarn-dedupe
fix: yarn-deduplicate before install on new plugin
2 parents ea9201e + 1ae1f84 commit 381cee4

File tree

3 files changed

+35
-29
lines changed

3 files changed

+35
-29
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
"lodash.defaultsdeep": "^4.6.1",
2323
"replace-in-file": "^6.3.2",
2424
"shelljs": "^0.8.5",
25+
"yarn-deduplicate": "^6.0.2",
2526
"yeoman-environment": "^3.19.3",
2627
"yeoman-generator": "^5.10.0"
2728
},

src/generators/plugin.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import fs from 'node:fs';
99
import path from 'node:path';
1010
import { fileURLToPath } from 'node:url';
11+
import { createRequire } from 'node:module';
1112
import Generator from 'yeoman-generator';
1213
import shelljs from 'shelljs';
1314
import replace from 'replace-in-file';
@@ -150,6 +151,15 @@ export default class Plugin extends Generator {
150151
}
151152

152153
public install(): void {
154+
try {
155+
// Try to dedupe yarn.lock before installing dependencies.
156+
const require = createRequire(import.meta.url);
157+
const yarnDedupePath = require.resolve('.bin/yarn-deduplicate');
158+
shelljs.exec(yarnDedupePath, { cwd: this.env.cwd });
159+
} catch {
160+
// do nothing
161+
}
162+
153163
try {
154164
shelljs.exec('yarn install', { cwd: this.env.cwd });
155165
} catch (e) {

yarn.lock

Lines changed: 24 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2959,6 +2959,11 @@
29592959
resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406"
29602960
integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==
29612961

2962+
"@yarnpkg/lockfile@^1.1.0":
2963+
version "1.1.0"
2964+
resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31"
2965+
integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==
2966+
29622967
JSONStream@^1.0.4:
29632968
version "1.3.5"
29642969
resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0"
@@ -3881,6 +3886,11 @@ [email protected]:
38813886
resolved "https://registry.yarnpkg.com/commander/-/commander-7.1.0.tgz#f2eaecf131f10e36e07d894698226e36ae0eb5ff"
38823887
integrity sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==
38833888

3889+
commander@^10.0.1:
3890+
version "10.0.1"
3891+
resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06"
3892+
integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==
3893+
38843894
commander@^11.0.0:
38853895
version "11.1.0"
38863896
resolved "https://registry.yarnpkg.com/commander/-/commander-11.1.0.tgz#62fdce76006a68e5c1ab3314dc92e800eb83d906"
@@ -8185,7 +8195,7 @@ semver@^6.0.0, semver@^6.3.0, semver@^6.3.1:
81858195
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
81868196
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
81878197

8188-
semver@^7.0.0, semver@^7.1.1, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.5.4, semver@^7.6.0, semver@^7.6.2:
8198+
semver@^7.0.0, semver@^7.1.1, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.5.0, semver@^7.5.4, semver@^7.6.0, semver@^7.6.2:
81898199
version "7.6.2"
81908200
resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13"
81918201
integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==
@@ -8514,16 +8524,7 @@ ssri@^9.0.0:
85148524
dependencies:
85158525
minipass "^3.1.1"
85168526

8517-
"string-width-cjs@npm:string-width@^4.2.0":
8518-
version "4.2.3"
8519-
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
8520-
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
8521-
dependencies:
8522-
emoji-regex "^8.0.0"
8523-
is-fullwidth-code-point "^3.0.0"
8524-
strip-ansi "^6.0.1"
8525-
8526-
"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
8527+
"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
85278528
version "4.2.3"
85288529
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
85298530
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
@@ -8591,14 +8592,7 @@ string_decoder@~1.1.1:
85918592
dependencies:
85928593
safe-buffer "~5.1.0"
85938594

8594-
"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
8595-
version "6.0.1"
8596-
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
8597-
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
8598-
dependencies:
8599-
ansi-regex "^5.0.1"
8600-
8601-
[email protected], strip-ansi@^6.0.0, strip-ansi@^6.0.1:
8595+
"strip-ansi-cjs@npm:strip-ansi@^6.0.1", [email protected], strip-ansi@^6.0.0, strip-ansi@^6.0.1:
86028596
version "6.0.1"
86038597
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
86048598
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
@@ -9315,7 +9309,7 @@ [email protected]:
93159309
resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343"
93169310
integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==
93179311

9318-
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
9312+
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
93199313
version "7.0.0"
93209314
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
93219315
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
@@ -9333,15 +9327,6 @@ wrap-ansi@^6.2.0:
93339327
string-width "^4.1.0"
93349328
strip-ansi "^6.0.0"
93359329

9336-
wrap-ansi@^7.0.0:
9337-
version "7.0.0"
9338-
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
9339-
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
9340-
dependencies:
9341-
ansi-styles "^4.0.0"
9342-
string-width "^4.1.0"
9343-
strip-ansi "^6.0.0"
9344-
93459330
wrap-ansi@^8.1.0:
93469331
version "8.1.0"
93479332
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"
@@ -9488,6 +9473,16 @@ yargs@^17.0.0, yargs@^17.2.1:
94889473
y18n "^5.0.5"
94899474
yargs-parser "^21.1.1"
94909475

9476+
yarn-deduplicate@^6.0.2:
9477+
version "6.0.2"
9478+
resolved "https://registry.yarnpkg.com/yarn-deduplicate/-/yarn-deduplicate-6.0.2.tgz#63498d2d4c3a8567e992a994ce0ab51aa5681f2e"
9479+
integrity sha512-Efx4XEj82BgbRJe5gvQbZmEO7pU5DgHgxohYZp98/+GwPqdU90RXtzvHirb7hGlde0sQqk5G3J3Woyjai8hVqA==
9480+
dependencies:
9481+
"@yarnpkg/lockfile" "^1.1.0"
9482+
commander "^10.0.1"
9483+
semver "^7.5.0"
9484+
tslib "^2.5.0"
9485+
94919486
yeoman-environment@^3.15.1, yeoman-environment@^3.19.3:
94929487
version "3.19.3"
94939488
resolved "https://registry.yarnpkg.com/yeoman-environment/-/yeoman-environment-3.19.3.tgz#49c2339805fdf695fac42c88334a1daa94ee8b6c"

0 commit comments

Comments
 (0)