在全局 npm install 上构建 Git 依赖

atf*_*nes 5 node.js npm

Npm 允许使用自定义 git URL 来指定依赖项(请参阅package.json 中的 npm install private github repositories by dependency)。

但是,这些依赖项通常打包并发布到 npm 注册表,因此可以按名称安装它们。这个发布过程通常包括构建文件、缩小文件等,这些文件通常在 github 中不可用。

使用自定义 git URL 安装依赖项时,可能需要这些构建、缩小等文件,但它们将不可用。

要生成这些文件,可以使用npm 脚本在安装生命周期中运行一个钩子。但是,我找不到适合此任务的脚本,因为:

  1. Prepublish不在全局安装中运行。它将被弃用,以支持prepareprepublishOnly
  2. Prepare也仅在本地安装上运行。(编辑: prepare 也可以在全局安装上运行,这与npm 脚本文档中所说的不同)
  3. Prepack安装 git 依赖项之前npm pack之后运行(如文档所述)。但是,在全局安装(节点 LTS 版本:v6.11.0,npm 版本(来自节点 LTS):3.10.10)中尝试此脚本时不会触发它。npm publish
  4. 最佳实践中不推荐预安装和安装

不要使用安装。使用 .gyp 文件进行编译,并为其他任何内容预发布。您几乎不必显式设置预安装或安装脚本。如果您正在这样做,请考虑是否还有其他选择。安装或预安装脚本的唯一有效用途是编译,必须在目标架构上完成。

  1. Postinstall也将在包的本地安装中运行,这不是预期的行为。