我们的公司网络非常封闭,所以正常的方法是:
npm install cypress@3.4.1
由于被代理阻止而不起作用,我们需要在跨环境的帮助下通过以下方式提供参数CYPRESS_INSTALL_BINARY
(因为我们这里主要有微软环境)。
cross-env CYPRESS_INSTALL_BINARY='\\localserver\cypress\3.4.1\cypress.zip' npm install cypress@3.4.1
这在第一次安装时很容易做到,但问题是团队中的每个人都需要运行此命令。我希望只需输入 npm install 即可自动获取所有要求。当我们想要更新 cypress 包时,这一点尤为明显,因为每次都需要更改二进制 url。
我尝试将 preinstall
脚本添加到我的 package.json
中,如下所示:
"scripts": {
...
"preinstall": "cross-env CYPRESS_INSTALL_BINARY='\\localserver\cypress\3.4.1\cypress.zip'",
...
},
但是在 preinstall
完成并且 install
开始之后,cross-env 设置的环境变量似乎“消失”了,因为 cypress 尝试从网络。我同意它是临时的,但它需要在安装命令中持续存在。还看到了带有 .env
文件的解决方案,但据我所知,这些解决方案都不支持 install
步骤。
我当前的解决方案是在预安装
步骤中运行整个cypress安装,它可以工作,但每次都运行双重安装似乎没有必要。
所以,我所要求的是一种让开发人员只需在全新计算机上运行以下命令即可完成的方法。
git clone ...
cd ...
npm install
我怎样才能做到这一点?
最佳答案
我这边的情况相同,只是我想阻止在本地计算机上安装 cypress。
通过将 .npmrc
添加到项目的根目录并添加到版本控制来解决此问题。
.npmrc 的内容:
CYPRESS_INSTALL_BINARY=0
由于在安装时使用了环境变量,因此无法使用 cross-env
解决方案,因为无法确定 cross-env
是否已安装.
请告诉我它是否有帮助或者您已经有其他解决方案。
关于node.js - 如何设置在 "npm install"期间使用的环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57431439/