依赖项是在 npm 预安装脚本之前还是之后下载的?

Do dependencies get downloaded before or after the npm preinstall script?

NPM 脚本的文档说明:

preinstall: Run BEFORE the package is installed

但这发生在下载依赖项之前还是之后?

即下列哪项是正确的:

  1. 下载依赖
  2. 预安装脚本运行
  3. 安装

  1. 预安装脚本运行
  2. 安装
    1. 下载依赖项作为安装的一部分

我没看到 npm script docs 涵盖了这一点,但它可能在其他地方有记录。

我也搜索了这个问题的答案,但没有找到任何概述确切过程的文档。

不过,从测试来看,好像要看情况。如果您在包目录中 运行 npm linknpm install,它将下载依赖项和 运行 脚本,但顺序为:

  1. 运行 预安装脚本
  2. 下载依赖项
  3. 运行 安装后脚本

因此,如果您的预安装脚本使用依赖项,它将失败。

但是,如果您从另一个文件夹 运行 npm install <package>npm install <path/to/local/folder>,它将按以下顺序执行:

  1. 下载或link包+所有依赖项
  2. 运行 预安装脚本
  3. 运行 安装后脚本