在全局npm安装上构建Git依赖

时间:2017-06-21 15:38:07

标签: node.js npm

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

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

使用自定义git URL安装依赖项时,可能需要这些build,minify等文件,但它们将无法使用。

要生成这些文件,npm scripts可用于在安装生命周期中运行挂钩。但是,我无法找到适合此任务的脚本:

  1. 预发布无法在全局安装中运行。它将被弃用,以支持prepareprepublishOnly
  2. 准备也只在本地安装上运行。 (编辑:准备也可以在全局安装上运行,与npm scripts docs中的内容不同)
  3. Prepack npm packnpm publish之前以及安装git依赖项时运行(如the documentation中所述)。但是,在全局安装中尝试此脚本时未触发(节点LTS版本:v6.11.0,npm版本(来自节点LTS):3.10.10)。
  4. 预安装和安装不建议best practices
  5.   

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

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

1 个答案:

答案 0 :(得分:2)

prepare节点脚本可以解决问题。但是,此npm脚本仅在npm v5.0.0中提供,如下所述:https://github.com/npm/npm/blob/dcc4273cadebe70f853e6d948a425978bc42e045/CHANGELOG.md#feature-summary