【问题标题】:Build Git dependency on global npm install在全局 npm install 上构建 Git 依赖
【发布时间】: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 可用于在安装生命周期中运行挂钩。但是,我找不到适合此任务的脚本:

  1. Prepublish 不在全局安装中运行。它将被弃用,取而代之的是 prepareprepublishOnly
  2. Prepare 也只在本地安装上运行。 (编辑: prepare 也可以在全局安装上运行,这与 npm scripts docs 所说的不同)
  3. Prepacknpm packnpm publish 之前运行,并且在 安装 git 依赖项 时运行(如 the documentation 中所述)。但是,在全局安装中尝试此脚本时没有触发它(节点 LTS 版本:v6.11.0,npm 版本(来自节点 LTS):3.10.10)。
  4. 预安装和安装不推荐在best practices

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

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

【问题讨论】:

    标签: node.js npm


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-25
      • 1970-01-01
      • 2015-02-25
      • 2017-02-13
      • 1970-01-01
      • 2019-12-10
      • 2018-05-30
      • 2013-02-02
      相关资源
      最近更新 更多