Skip to content

Node.js 开发中,npm 是一个包管理器,用于安装、更新和管理 JavaScript 模块。

npm 提供了一些钩子(hooks)机制,用于在特定的生命周期事件发生时执行自定义的操作。

npm 钩子(npm hooks)允许您在执行特定的npm命令时执行自定义的脚本或任务。

这些钩子可以用于在安装依赖、更新依赖、构建项目等过程中添加额外的自定义逻辑。

一些常见的 npm 钩子有:

  1. preinstall:在执行 npm install 命令之前运行,可以用于在安装依赖之前进行一些预处理操作。
  2. postinstall:在执行 npm install 命令之后运行,可以用于在安装依赖之后执行一些操作,如编译源代码、生成静态文件等。
  3. prepublish:在执行 npm publish 命令之前运行,可以用于在发布模块之前执行一些操作,如打包、压缩等。
  4. postpublish:在执行 npm publish 命令之后运行,可以用于在发布模块之后执行一些操作,如发送通知、更新文档等。
  5. preversion:在执行 npm version 命令之前运行,可以用于在更新模块版本号之前执行一些操作。
  6. postversion:在执行 npm version 命令之后运行,可以用于在更新模块版本号之后执行一些操作,如生成 changelog、提交代码等。

TIP

除了上述 hooks,其他命令也有对应的钩子,pre 前缀表示前置钩子,post 前缀表示后置钩子。

可以在项目的 package.json 文件中的 scripts 字段中定义这些钩子,并指定要运行的脚本命令。

当相关的 npm 命令被执行时,相应的钩子脚本将被调用

譬如在 package.json 中添加:

json
{
  "scripts": {
    "preinstall": "echo \"preinstall script\""
  }
}

当执行 npm install 命令时,将会提前输出 preinstall script