前端/移动开发面试题更新 2026-08-05

请解释 npm script 的生命周期是指什么,并列举出主要的生命周期钩子有哪些?

前端/移动开发技术原理npm

考察说明

考察对npm脚本执行流程和钩子函数的理解。

回答思路

  1. 【回答框架 1】生命周期指的是npm在执行脚本时按照预定顺序触发的一系列事件,允许开发者在这些阶段注入自定义逻辑。
  2. 【回答框架 2】主要钩子包括pre和post前缀脚本,例如preinstall、install、postinstall,它们在对应主脚本之前或之后自动执行。
  3. 【回答框架 3】还有特殊的生命周期事件如prepublish、prepare、prepublishOnly等,用于发布前后的处理。
  4. 【回答框架 4】npm 还支持自定义脚本,通过npm run <script>触发,并可以配合pre<script>和post<script>定义钩子。
  5. 【回答框架 5】执行顺序可通过npm help scripts查看,且钩子默认继承环境变量和参数,但存在易混淆的特定钩子行为需注意区分。
  6. 【关键点 1】生命周期指npm按固定顺序触发pre、主、post脚本的机制。
  7. 【关键点 2】常见钩子包括prepublish、prepare、prepublishOnly、preinstall、install、postinstall等。
  8. 【关键点 3】自定义脚本也可带pre和post钩子。
  9. 【关键点 4】钩子脚本会继承环境变量,但pre和post默认会继承主脚本的参数。
  10. 【关键点 5】钩子执行失败会中断后续流程。
  11. 【易错点 1】将prepublish的行为与其他钩子混淆,旧版本中prepublish会在npm install时触发,新版中则由prepare替代,需关注版本差异。
  12. 【易错点 2】误以为所有钩子都无条件继承参数,实际只有pre和post自动继承,自定义脚本需要显式传入。
  13. 【易错点 3】忽略钩子的执行顺序导致依赖未正确安装或构建失败。