Open MikeMcC399 opened 7 months ago
In Cypress 13.6.4
, node-gyp@8.4.1
is used:
(also true for Cypress 13.7.1
)
$ yarn why node-gyp
yarn why v1.22.21
[1/4] Why do we have the module "node-gyp"...?
[2/4] Initialising dependency graph...
warning Resolution field "pretty-format@26.4.0" is incompatible with requested version "pretty-format@29.4.3"
warning Resolution field "pretty-format@26.4.0" is incompatible with requested version "pretty-format@^27.0.2"
[3/4] Finding dependency...
[4/4] Calculating file sizes...
=> Found "node-gyp@9.0.0"
info Has been hoisted to "node-gyp"
info Reasons this module exists
- "workspace-aggregator-fcd5eb41-6c99-41cd-b776-c2abefb56723" depends on it
- Hoisted from "_project_#@packages#server#@electron#rebuild#node-gyp"
- Hoisted from "_project_#lerna#@npmcli#run-script#node-gyp"
- Hoisted from "_project_#pacote#@npmcli#run-script#node-gyp"
- Hoisted from "_project_#@npmcli#arborist#@npmcli#run-script#node-gyp"
- Hoisted from "_project_#lerna#@lerna#legacy-package-management#@npmcli#run-script#node-gyp"
- Hoisted from "_project_#lerna#@npmcli#arborist#@npmcli#run-script#node-gyp"
- Hoisted from "_project_#lerna#pacote#@npmcli#run-script#node-gyp"
- Hoisted from "_project_#semantic-release#@semantic-release#npm#npm#node-gyp"
- Hoisted from "_project_#lerna#@lerna#legacy-package-management#@npmcli#arborist#@npmcli#run-script#node-gyp"
- Hoisted from "_project_#lerna#@lerna#create#pacote#@npmcli#run-script#node-gyp"
- Hoisted from "_project_#lerna#@lerna#legacy-package-management#pacote#@npmcli#run-script#node-gyp"
- Hoisted from "_project_#lerna#@npmcli#arborist#@npmcli#metavuln-calculator#pacote#@npmcli#run-script#node-gyp"
- Hoisted from "_project_#lerna#@lerna#legacy-package-management#@npmcli#arborist#@npmcli#metavuln-calculator#pacote#@npmcli#run-script#node-gyp"
info Disk size without dependencies: "2.38MB"
info Disk size with unique dependencies: "5.47MB"
info Disk size with transitive dependencies: "8.69MB"
info Number of shared dependencies: 86
=> Found "@npmcli/run-script#node-gyp@8.4.1"
info This module exists because "_project_#@npmcli#run-script" depends on it.
info Disk size without dependencies: "2.56MB"
info Disk size with unique dependencies: "5.65MB"
info Disk size with transitive dependencies: "8.86MB"
info Number of shared dependencies: 86
Done in 2.21s.
What would you like?
Enable building Cypress from source on Windows with node-gyp@9.1.0 or later when executing
yarn
on this repository according to CONTRIBUTING > Getting Started.Why is this needed?
node-gyp recommends for Windows:
Following on from issue https://github.com/cypress-io/cypress/issues/28703, in order to build Cypress from source on Windows 10 or Windows 11, the Windows 10 SDK of Visual Studio C++ environment must be installed. If the instructions from node-gyp are followed to the letter, then only the Windows 11 SDK is installed by default on Windows 10 or Windows 11. The Cypress build uses node-gyp@8.4.1 and fails with the error:
The workaround is to additionally install a Windows 10 SDK which allows
node-gyp
to recognize that Visual Studio is installed.A more solid resolution (as opposed to a workaround) is to allow building Cypress from source using a version of node-gyp@9.1.0 or higher which includes support for recognizing the presence of a Windows 11 SDK.
Other
The version of
node-gyp
used is not explicitly specified by Cypress. It is dependent on the versions of other npm modules installed such assemantic-release
andlerna
.Note that this enhancement request is not sufficient to support building with Python
3.12
. This would require a minimum of node-gyp@10.0.0 which takes care of the removal ofdistutils
in Python3.12
.