@@ -1695,10 +1695,16 @@ const definitions = {
16951695 default : false ,
16961696 type : Boolean ,
16971697 short : 'D' ,
1698+ exclusive : [ 'save-optional' , 'save-peer' , 'save-prod' ] ,
16981699 description : `
16991700 Save installed packages to a package.json file as \`devDependencies\`.
17001701 ` ,
17011702 flatten ( key , obj , flatOptions ) {
1703+ if ( obj [ 'save-dev' ] && obj [ 'save-optional' ] ) {
1704+ const msg = '--save-dev and --save-optional are mutually exclusive, last one wins'
1705+ log . warn ( 'invalid' , msg )
1706+ }
1707+
17021708 if ( ! obj [ key ] ) {
17031709 if ( flatOptions . saveType === 'dev' ) {
17041710 delete flatOptions . saveType
@@ -1726,11 +1732,17 @@ const definitions = {
17261732 default : false ,
17271733 type : Boolean ,
17281734 short : 'O' ,
1735+ exclusive : [ 'save-dev' , 'save-peer' , 'save-prod' ] ,
17291736 description : `
17301737 Save installed packages to a package.json file as
17311738 \`optionalDependencies\`.
17321739 ` ,
17331740 flatten ( key , obj , flatOptions ) {
1741+ if ( obj [ 'save-dev' ] && obj [ 'save-optional' ] ) {
1742+ const msg = '--save-dev and --save-optional are mutually exclusive, last one wins'
1743+ log . warn ( 'invalid' , msg )
1744+ }
1745+
17341746 if ( ! obj [ key ] ) {
17351747 if ( flatOptions . saveType === 'optional' ) {
17361748 delete flatOptions . saveType
@@ -1754,6 +1766,7 @@ const definitions = {
17541766 'save-peer' : new Definition ( 'save-peer' , {
17551767 default : false ,
17561768 type : Boolean ,
1769+ exclusive : [ 'save-dev' , 'save-optional' , 'save-prod' ] ,
17571770 description : `
17581771 Save installed packages to a package.json file as \`peerDependencies\`
17591772 ` ,
@@ -1799,6 +1812,7 @@ const definitions = {
17991812 default : false ,
18001813 type : Boolean ,
18011814 short : 'P' ,
1815+ exclusive : [ 'save-dev' , 'save-optional' , 'save-peer' ] ,
18021816 description : `
18031817 Save installed packages into \`dependencies\` specifically. This is
18041818 useful if a package already exists in \`devDependencies\` or
0 commit comments