【发布时间】:2017-11-24 14:55:35
【问题描述】:
Npm 允许使用自定义 git URL 来指定依赖项(请参阅 npm install private github repositories by dependency in package.json)。
不过,这些依赖通常是打包和published到npm注册中心的,所以可以通过名字来安装。这个发布过程通常包括构建文件、缩小文件等,这些文件在 github 中通常是不可用的。
使用自定义 git URL 安装依赖项时,可能需要这些构建、缩小等文件,但它们将不可用。
要生成这些文件,npm scripts 可用于在安装生命周期中运行挂钩。但是,我找不到适合此任务的脚本:
-
Prepublish 不在全局安装中运行。它将被弃用,取而代之的是
prepare和prepublishOnly - Prepare 也只在本地安装上运行。 (编辑: prepare 也可以在全局安装上运行,这与 npm scripts docs 所说的不同)
-
Prepack 在
npm pack和npm publish之前运行,并且在 安装 git 依赖项 时运行(如 the documentation 中所述)。但是,在全局安装中尝试此脚本时没有触发它(节点 LTS 版本:v6.11.0,npm 版本(来自节点 LTS):3.10.10)。 - 预安装和安装不推荐在best practices:
不要使用安装。使用 .gyp 文件进行编译,并为其他任何内容预发布。您几乎不必显式设置预安装或安装脚本。如果您这样做,请考虑是否有其他选择。安装或预安装脚本的唯一有效用途是编译必须在目标架构上完成。
- Postinstall 也将在包的本地安装中运行,这不是预期的行为。
【问题讨论】: