@@ -28,7 +28,8 @@ module.exports = function mergeDeps (
2828 sources ,
2929 {
3030 prune,
31- warnIncompatibleVersions
31+ warnIncompatibleVersions,
32+ forceOverwrite
3233 }
3334) {
3435 const result = Object . assign ( { } , sourceDeps )
@@ -63,11 +64,15 @@ module.exports = function mergeDeps (
6364 const r = tryGetNewerRange ( sourceRangeSemver , injectingRangeSemver )
6465 const didGetNewer = ! ! r
6566
66- // if failed to infer newer version, use existing one because it's likely
67- // built-in
68- result [ depName ] = didGetNewer
69- ? injectSemver ( injectingRange , r )
70- : sourceRange
67+ if ( forceOverwrite ) {
68+ result [ depName ] = injectingRange
69+ } else if ( didGetNewer ) {
70+ result [ depName ] = injectSemver ( injectingRange , r )
71+ } else {
72+ // if failed to infer newer version, use existing one because it's likely
73+ // built-in
74+ result [ depName ] = sourceRange
75+ }
7176
7277 // if changed, update source
7378 if ( result [ depName ] === injectingRange ) {
@@ -85,7 +90,7 @@ module.exports = function mergeDeps (
8590 `conflicting versions for project dependency "${ depName } ":\n\n` +
8691 `- ${ sourceRange } injected by generator "${ sourceGeneratorId } "\n` +
8792 `- ${ injectingRange } injected by generator "${ generatorId } "\n\n` +
88- `Using ${ didGetNewer ? `newer ` : `` } version (${
93+ `Using ${ ( ! forceOverwrite && didGetNewer ) ? `newer ` : `` } version (${
8994 result [ depName ]
9095 } ), but this may cause build errors.`
9196 )
0 commit comments