如何一次性为package.json中所有脚本设置NODE_OPTIONS?
统一为Yarn脚本设置NODE_OPTIONS的方案
方法1:通过Yarn配置文件全局生效(推荐)
Yarn v1支持通过项目根目录的.yarnrc文件,为所有脚本统一配置环境变量,无需逐个修改package.json中的脚本:
- 在项目根目录创建或编辑
.yarnrc文件 - 添加以下配置:
NODE_OPTIONS "--openssl-legacy-provider"
保存后,所有通过yarn run <脚本名>执行的命令都会自动携带NODE_OPTIONS=--openssl-legacy-provider参数。
方法2:临时全局设置(仅当前shell会话生效)
如果只是临时需要该配置,无需写入文件,可以通过以下方式实现:
- 单次命令生效:
NODE_OPTIONS=--openssl-legacy-provider yarn run <你的脚本名称>
- 当前shell会话永久生效:
export NODE_OPTIONS=--openssl-legacy-provider yarn run <你的脚本名称>
注意:这种方式仅在当前打开的shell窗口中有效,关闭窗口后需要重新设置。
关于.env文件无效的说明
Yarn v1默认不会自动加载项目根目录的.env文件,若要使用.env需要在每个脚本中显式引入dotenv包加载环境变量,但这不符合你“无需修改每个脚本”的需求,因此不推荐。
内容的提问来源于stack exchange,提问作者ptkvsk
相关产品推荐
相关产品推荐

