如何阻止Yarn在添加devDependencies后自动运行package.json脚本?
如何阻止Yarn在执行
yarn add后自动运行脚本? 我之前也碰到过类似的糟心事——Yarn安装依赖后总是莫名其妙触发项目里的脚本,一开始跑start,改了脚本名又跑build,折腾了好一阵才找到解决办法,分享给你:
临时解决:单次命令禁用脚本
如果只是偶尔需要跳过脚本,直接在yarn add命令后加上--ignore-scripts参数就行,命令格式如下:
yarn add <你的依赖名> -D --ignore-scripts
这个参数会直接阻止Yarn执行任何安装相关的脚本,不管是项目自带的还是依赖包本身的。
永久生效:项目级全局配置
要是你希望每次yarn add都自动跳过脚本,可以修改Yarn的配置文件,一劳永逸:
- Yarn 1.x版本:在项目根目录创建或编辑
.yarnrc文件,添加一行:ignore-scripts true - Yarn 2+(Berry版本):编辑项目根目录的
.yarnrc.yml,添加:npmClientSettings.ignoreScripts: true
配置完成后,所有yarn add操作都会默认跳过脚本执行,不用每次手动加参数。
为什么会自动触发脚本?
Yarn本身默认不会在add命令后主动运行start或build脚本,结合你的package.json配置来看,大概率是这两种情况:
- 某个依赖包自带了
install/postinstall生命周期脚本,间接触发了你的build; - 部分旧版本Yarn存在的小bug,误将项目里的常用脚本识别为安装后的触发项。
不过不管是哪种原因,上面的方法都能彻底解决问题。
内容的提问来源于stack exchange,提问作者vdegenne
相关产品推荐
相关产品推荐

