@@ -3,6 +3,7 @@ const fs = require("fs");
3
3
const archiver = require ( "archiver" ) ;
4
4
const constants = require ( "./constants.js" ) ;
5
5
const process = require ( "process" ) ;
6
+ const semver = require ( "semver" ) ;
6
7
7
8
function delete_archive ( file_name ) {
8
9
try {
@@ -72,24 +73,58 @@ function archive_project(lt_config) {
72
73
{ cwd : process . cwd ( ) , ignore : ignore_files , dot : false } ,
73
74
{ prefix : "project/" }
74
75
) ;
76
+ let raw_package_data = fs . readFileSync ( "package.json" ) ;
77
+ let package = JSON . parse ( raw_package_data ) ;
75
78
//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
+ ) {
77
83
console . log ( "Overriding NPM Dependencies" ) ;
78
- let rawdata = fs . readFileSync ( "package.json" ) ;
79
-
80
- let package = JSON . parse ( rawdata ) ;
81
84
package . dependencies = lt_config . run_settings . npm_dependencies ;
82
85
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
+ }
92
118
}
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
+ ) ;
93
128
if ( fs . existsSync ( ".npmrc" ) ) {
94
129
let raw_data = fs . readFileSync ( ".npmrc" , "utf8" ) ;
95
130
if (
0 commit comments