如何仅在生产环境下开启Yarn v1的verbose模式?
仅在Heroku生产环境开启Yarn v1的install verbose模式
Yarn v1的.yarnrc不支持直接解析环境变量表达式,所以你之前的写法无法生效。这里提供两种可行的实现方式:
方法一:动态生成.yarnrc文件
- 在项目根目录创建
generate-yarnrc.js脚本:
const fs = require('fs'); const yarnrcLine = process.env.NODE_ENV === 'production' ? '--install.verbose true' : ''; fs.writeFileSync('.yarnrc', yarnrcLine);
- 修改
package.json的scripts,添加preinstall钩子:
"scripts": { "preinstall": "node generate-yarnrc.js", "install": "yarn install" }
- 将脚本和修改后的
package.json提交到Git并推送到Heroku。Heroku会在执行yarn install前自动运行preinstall脚本,根据当前环境生成对应内容的.yarnrc。
方法二:通过Heroku配置变量传递Yarn参数
不需要修改本地文件,直接在Heroku后台配置:
- 进入你的Heroku应用的「Settings」→「Config Vars」页面
- 添加一条配置:
- KEY:
YARN_FLAGS - VALUE:
--install.verbose true
- KEY:
- 仅在生产环境的Heroku应用中设置这个变量,开发环境不设置即可。Heroku在执行
yarn install时会自动附加该变量指定的参数,从而只在生产环境开启verbose模式。
内容的提问来源于stack exchange,提问作者Matt
相关产品推荐
相关产品推荐

