Skip to content
This repository was archived by the owner on Jan 20, 2022. It is now read-only.

Commit e13ba3b

Browse files
bonkydogisaacs
authored andcommitted
Don't automatically install optional peer dependencies
Fix: npm/rfcs#224 PR-URL: #138 Credit: @bonkydog Close: #138 Reviewed-by: @isaacs
1 parent 383ccfc commit e13ba3b

File tree

2 files changed

+8
-186
lines changed

2 files changed

+8
-186
lines changed

Diff for: lib/arborist/build-ideal-tree.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -787,8 +787,9 @@ This is a one-time fix-up, please be patient...
787787
return true
788788

789789
// If the edge has no destination, that's a problem.
790-
if (!edge.to)
791-
return true
790+
if (!edge.to) {
791+
return edge.type !== 'peerOptional'
792+
}
792793

793794
// If user has explicitly asked to update this package by name, it's a problem.
794795
if (this[_updateNames].includes(edge.name))

Diff for: tap-snapshots/test-arborist-build-ideal-tree.js-TAP.test.js

+5-184
Original file line numberDiff line numberDiff line change
@@ -28328,52 +28328,6 @@ Node {
2832828328
"name": "@types/color-name",
2832928329
"resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
2833028330
},
28331-
"@types/prop-types" => Node {
28332-
"dev": true,
28333-
"edgesIn": Set {
28334-
Edge {
28335-
"from": "node_modules/@types/react",
28336-
"name": "@types/prop-types",
28337-
"spec": "*",
28338-
"type": "prod",
28339-
},
28340-
},
28341-
"location": "node_modules/@types/prop-types",
28342-
"name": "@types/prop-types",
28343-
"optional": true,
28344-
"peer": true,
28345-
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz",
28346-
},
28347-
"@types/react" => Node {
28348-
"dev": true,
28349-
"edgesIn": Set {
28350-
Edge {
28351-
"from": "node_modules/tap/node_modules/ink",
28352-
"name": "@types/react",
28353-
"spec": ">=16.8.0",
28354-
"type": "peerOptional",
28355-
},
28356-
},
28357-
"edgesOut": Map {
28358-
"@types/prop-types" => Edge {
28359-
"name": "@types/prop-types",
28360-
"spec": "*",
28361-
"to": "node_modules/@types/prop-types",
28362-
"type": "prod",
28363-
},
28364-
"csstype" => Edge {
28365-
"name": "csstype",
28366-
"spec": "^2.2.0",
28367-
"to": "node_modules/csstype",
28368-
"type": "prod",
28369-
},
28370-
},
28371-
"location": "node_modules/@types/react",
28372-
"name": "@types/react",
28373-
"optional": true,
28374-
"peer": true,
28375-
"resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.19.tgz",
28376-
},
2837728331
"ajv" => Node {
2837828332
"dev": true,
2837928333
"edgesIn": Set {
@@ -29761,22 +29715,6 @@ Node {
2976129715
"name": "cross-spawn",
2976229716
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz",
2976329717
},
29764-
"csstype" => Node {
29765-
"dev": true,
29766-
"edgesIn": Set {
29767-
Edge {
29768-
"from": "node_modules/@types/react",
29769-
"name": "csstype",
29770-
"spec": "^2.2.0",
29771-
"type": "prod",
29772-
},
29773-
},
29774-
"location": "node_modules/csstype",
29775-
"name": "csstype",
29776-
"optional": true,
29777-
"peer": true,
29778-
"resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.8.tgz",
29779-
},
2978029718
"dashdash" => Node {
2978129719
"dev": true,
2978229720
"edgesIn": Set {
@@ -35253,7 +35191,7 @@ Node {
3525335191
"@types/react" => Edge {
3525435192
"name": "@types/react",
3525535193
"spec": ">=16.8.0",
35256-
"to": "node_modules/@types/react",
35194+
"to": null,
3525735195
"type": "peerOptional",
3525835196
},
3525935197
"ansi-escapes" => Edge {
@@ -49434,52 +49372,6 @@ Node {
4943449372
"name": "@types/color-name",
4943549373
"resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
4943649374
},
49437-
"@types/prop-types" => Node {
49438-
"edgesIn": Set {
49439-
Edge {
49440-
"from": "node_modules/@types/react",
49441-
"name": "@types/prop-types",
49442-
"spec": "*",
49443-
"type": "prod",
49444-
},
49445-
},
49446-
"location": "node_modules/@types/prop-types",
49447-
"name": "@types/prop-types",
49448-
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz",
49449-
},
49450-
"@types/react" => Node {
49451-
"edgesIn": Set {
49452-
Edge {
49453-
"from": "node_modules/ink",
49454-
"name": "@types/react",
49455-
"spec": ">=16.8.0",
49456-
"type": "peerOptional",
49457-
},
49458-
Edge {
49459-
"from": "node_modules/tap",
49460-
"name": "@types/react",
49461-
"spec": "^16.9.16",
49462-
"type": "prod",
49463-
},
49464-
},
49465-
"edgesOut": Map {
49466-
"@types/prop-types" => Edge {
49467-
"name": "@types/prop-types",
49468-
"spec": "*",
49469-
"to": "node_modules/@types/prop-types",
49470-
"type": "prod",
49471-
},
49472-
"csstype" => Edge {
49473-
"name": "csstype",
49474-
"spec": "^2.2.0",
49475-
"to": "node_modules/csstype",
49476-
"type": "prod",
49477-
},
49478-
},
49479-
"location": "node_modules/@types/react",
49480-
"name": "@types/react",
49481-
"resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.19.tgz",
49482-
},
4948349375
"ajv" => Node {
4948449376
"edgesIn": Set {
4948549377
Edge {
@@ -50833,19 +50725,6 @@ Node {
5083350725
"name": "cross-spawn",
5083450726
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz",
5083550727
},
50836-
"csstype" => Node {
50837-
"edgesIn": Set {
50838-
Edge {
50839-
"from": "node_modules/@types/react",
50840-
"name": "csstype",
50841-
"spec": "^2.2.0",
50842-
"type": "prod",
50843-
},
50844-
},
50845-
"location": "node_modules/csstype",
50846-
"name": "csstype",
50847-
"resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.8.tgz",
50848-
},
5084950728
"dashdash" => Node {
5085050729
"edgesIn": Set {
5085150730
Edge {
@@ -51957,7 +51836,7 @@ Node {
5195751836
"@types/react" => Edge {
5195851837
"name": "@types/react",
5195951838
"spec": ">=16.8.0",
51960-
"to": "node_modules/@types/react",
51839+
"to": null,
5196151840
"type": "peerOptional",
5196251841
},
5196351842
"ansi-escapes" => Edge {
@@ -55874,9 +55753,10 @@ Node {
5587455753
},
5587555754
"edgesOut": Map {
5587655755
"@types/react" => Edge {
55756+
"error": "MISSING",
5587755757
"name": "@types/react",
5587855758
"spec": "^16.9.16",
55879-
"to": "node_modules/@types/react",
55759+
"to": null,
5588055760
"type": "prod",
5588155761
},
5588255762
"async-hook-domain" => Edge {
@@ -57927,50 +57807,6 @@ Node {
5792757807
"name": "@types/color-name",
5792857808
"resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
5792957809
},
57930-
"@types/prop-types" => Node {
57931-
"edgesIn": Set {
57932-
Edge {
57933-
"from": "node_modules/@types/react",
57934-
"name": "@types/prop-types",
57935-
"spec": "*",
57936-
"type": "prod",
57937-
},
57938-
},
57939-
"location": "node_modules/@types/prop-types",
57940-
"name": "@types/prop-types",
57941-
"optional": true,
57942-
"peer": true,
57943-
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz",
57944-
},
57945-
"@types/react" => Node {
57946-
"edgesIn": Set {
57947-
Edge {
57948-
"from": "node_modules/ink",
57949-
"name": "@types/react",
57950-
"spec": ">=16.8.0",
57951-
"type": "peerOptional",
57952-
},
57953-
},
57954-
"edgesOut": Map {
57955-
"@types/prop-types" => Edge {
57956-
"name": "@types/prop-types",
57957-
"spec": "*",
57958-
"to": "node_modules/@types/prop-types",
57959-
"type": "prod",
57960-
},
57961-
"csstype" => Edge {
57962-
"name": "csstype",
57963-
"spec": "^2.2.0",
57964-
"to": "node_modules/csstype",
57965-
"type": "prod",
57966-
},
57967-
},
57968-
"location": "node_modules/@types/react",
57969-
"name": "@types/react",
57970-
"optional": true,
57971-
"peer": true,
57972-
"resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.19.tgz",
57973-
},
5797457810
"ajv" => Node {
5797557811
"edgesIn": Set {
5797657812
Edge {
@@ -59298,21 +59134,6 @@ Node {
5929859134
"name": "cross-spawn",
5929959135
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz",
5930059136
},
59301-
"csstype" => Node {
59302-
"edgesIn": Set {
59303-
Edge {
59304-
"from": "node_modules/@types/react",
59305-
"name": "csstype",
59306-
"spec": "^2.2.0",
59307-
"type": "prod",
59308-
},
59309-
},
59310-
"location": "node_modules/csstype",
59311-
"name": "csstype",
59312-
"optional": true,
59313-
"peer": true,
59314-
"resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.8.tgz",
59315-
},
5931659137
"dashdash" => Node {
5931759138
"edgesIn": Set {
5931859139
Edge {
@@ -60368,7 +60189,7 @@ Node {
6036860189
"@types/react" => Edge {
6036960190
"name": "@types/react",
6037060191
"spec": ">=16.8.0",
60371-
"to": "node_modules/@types/react",
60192+
"to": null,
6037260193
"type": "peerOptional",
6037360194
},
6037460195
"ansi-escapes" => Edge {

0 commit comments

Comments
 (0)