仅执行无参yarn命令时会运行什么?配置来源是哪里?
Yarn无参数运行的具体行为与配置来源
咱们先把这个事儿拆明白:当你直接敲yarn不带任何参数时,它默认等价于执行yarn install,核心操作是安装项目依赖——也就是把package.json里dependencies和devDependencies中定义的包下载到node_modules目录,同时生成或更新yarn.lock锁文件,保证依赖版本的一致性。
至于你提到的“会完成编译”,这不是Yarn无参数命令的原生行为,而是它触发了项目里的生命周期钩子脚本,具体来说:
- Yarn在执行
install的过程中,会自动运行package.json里scripts字段中的prepare脚本(如果有的话),很多项目会把编译逻辑(比如TypeScript转JS、资源打包等)放在这个脚本里,所以你才会看到编译过程。 - 除此之外,
preinstall和postinstall这类钩子脚本也可能在install前后被触发,不过prepare是最常见的用来做编译的钩子。
那这些配置从哪来呢?
- 无参数时的核心默认行为是Yarn自身的内置规则,官方就设定了无参数命令对应
install操作。 - 额外的编译等扩展操作,完全来自你项目根目录的
package.json里的scripts字段,以及可能存在的.yarnrc/.yarnrc.yml配置文件(不过后者更多是调整Yarn的全局行为,不是触发编译的核心)。
举个例子,如果你的package.json里有这样的脚本:
"scripts": { "prepare": "tsc --project tsconfig.json" }
那你执行yarn的时候,在依赖安装完成后,就会自动运行tsc命令完成TypeScript的编译,这就是你看到的编译环节的来源。
内容的提问来源于stack exchange,提问作者Socrates
相关产品推荐
相关产品推荐

