@@ -3,6 +3,7 @@ const fs = require("fs");
33const archiver = require ( "archiver" ) ;
44const constants = require ( "./constants.js" ) ;
55const process = require ( "process" ) ;
6+ const semver = require ( "semver" ) ;
67
78function delete_archive ( file_name ) {
89 try {
@@ -72,24 +73,58 @@ function archive_project(lt_config) {
7273 { cwd : process . cwd ( ) , ignore : ignore_files , dot : false } ,
7374 { prefix : "project/" }
7475 ) ;
76+ let raw_package_data = fs . readFileSync ( "package.json" ) ;
77+ let package = JSON . parse ( raw_package_data ) ;
7578 //OverRide NPM Dependencies
76- if ( lt_config . run_settings . npm_dependencies ) {
79+ if (
80+ lt_config . run_settings . npm_dependencies &&
81+ ! lt_config . run_settings . cypress_version
82+ ) {
7783 console . log ( "Overriding NPM Dependencies" ) ;
78- let rawdata = fs . readFileSync ( "package.json" ) ;
79-
80- let package = JSON . parse ( rawdata ) ;
8184 package . dependencies = lt_config . run_settings . npm_dependencies ;
8285 package . devDependencies = { } ;
83- archive . append (
84- JSON . stringify ( package , null , 4 ) ,
85- {
86- name : "project/package.json" ,
87- cwd : process . cwd ( ) ,
88- ignore : ignore_files ,
89- } ,
90- { prefix : "project/" }
91- ) ;
86+ package . dependencies . cypress = semver . coerce (
87+ package . dependencies . cypress
88+ ) . version ;
89+ } else if (
90+ lt_config . run_settings . npm_dependencies &&
91+ lt_config . run_settings . cypress_version
92+ ) {
93+ console . log ( "Overriding NPM Dependencies" ) ;
94+ package . dependencies = lt_config . run_settings . npm_dependencies ;
95+ package . devDependencies = { } ;
96+ console . log ( "Overriding Cypress Version" ) ;
97+ package . dependencies . cypress = semver . coerce (
98+ lt_config . run_settings . cypress_version
99+ ) . version ;
100+ } else if (
101+ ! lt_config . run_settings . npm_dependencies &&
102+ lt_config . run_settings . cypress_version
103+ ) {
104+ console . log ( "Overriding Cypress Version" ) ;
105+ package . dependencies . cypress = semver . coerce (
106+ lt_config . run_settings . cypress_version
107+ ) . version ;
108+ } else {
109+ if ( package . dependencies . hasOwnProperty ( "cypress" ) ) {
110+ package . dependencies . cypress = semver . coerce (
111+ package . dependencies . cypress
112+ ) . version ;
113+ } else {
114+ package . devDependencies . cypress = semver . coerce (
115+ package . devDependencies . cypress
116+ ) . version ;
117+ }
92118 }
119+ archive . append (
120+ JSON . stringify ( package , null , 4 ) ,
121+ {
122+ name : "project/package.json" ,
123+ cwd : process . cwd ( ) ,
124+ ignore : ignore_files ,
125+ } ,
126+ { prefix : "project/" }
127+ ) ;
93128 if ( fs . existsSync ( ".npmrc" ) ) {
94129 let raw_data = fs . readFileSync ( ".npmrc" , "utf8" ) ;
95130 if (
0 commit comments