依赖项是在 npm 预安装脚本之前还是之后下载的?
Do dependencies get downloaded before or after the npm preinstall script?
NPM 脚本的文档说明:
preinstall: Run BEFORE the package is installed
但这发生在下载依赖项之前还是之后?
即下列哪项是正确的:
- 下载依赖
- 预安装脚本运行
- 安装
或
- 预安装脚本运行
- 安装
- 下载依赖项作为安装的一部分
我没看到 npm script docs 涵盖了这一点,但它可能在其他地方有记录。
我也搜索了这个问题的答案,但没有找到任何概述确切过程的文档。
不过,从测试来看,好像要看情况。如果您在包目录中 运行 npm link
或 npm install
,它将下载依赖项和 运行 脚本,但顺序为:
- 运行 预安装脚本
- 下载依赖项
- 运行 安装后脚本
因此,如果您的预安装脚本使用依赖项,它将失败。
但是,如果您从另一个文件夹 运行 npm install <package>
或 npm install <path/to/local/folder>
,它将按以下顺序执行:
- 下载或link包+所有依赖项
- 运行 预安装脚本
- 运行 安装后脚本
NPM 脚本的文档说明:
preinstall: Run BEFORE the package is installed
但这发生在下载依赖项之前还是之后?
即下列哪项是正确的:
- 下载依赖
- 预安装脚本运行
- 安装
或
- 预安装脚本运行
- 安装
- 下载依赖项作为安装的一部分
我没看到 npm script docs 涵盖了这一点,但它可能在其他地方有记录。
我也搜索了这个问题的答案,但没有找到任何概述确切过程的文档。
不过,从测试来看,好像要看情况。如果您在包目录中 运行 npm link
或 npm install
,它将下载依赖项和 运行 脚本,但顺序为:
- 运行 预安装脚本
- 下载依赖项
- 运行 安装后脚本
因此,如果您的预安装脚本使用依赖项,它将失败。
但是,如果您从另一个文件夹 运行 npm install <package>
或 npm install <path/to/local/folder>
,它将按以下顺序执行:
- 下载或link包+所有依赖项
- 运行 预安装脚本
- 运行 安装后脚本