如果依赖项不是来自 NPM,NPM 安装不会触发 babel 构建

NPM install doesn't trigger babel build if dependencies not coming from NPM

例如,如果在我的 package.json 中,我有这个:

 "dependencies": {
     "cacheman": "2.1.0"   }

它有效,当我执行 npm install 时,它会触发 cacheman 中的构建脚本。

但是,如果我这样做:

 "dependencies": {
     "cacheman": "https://github.com/cayasso/cacheman.git"   }

这是行不通的。 npm install 不会触发 cacheman 的构建过程。

这是为什么?

您引用的脚本是 pre-publish 脚本,该脚本在将 npm 模块发布到 npm 注册表之前 运行s。在这里查看 package.json#L9

此处显示摘录

"scripts": {
    "test": "make test",
    "prepublish": "make"
}

当您从 github 安装它时,没有发布步骤,因此脚本不是 运行。

如果你只想从 github 安装并且有脚本 运行,你可以将它添加为 cacheman 的安装后脚本(你必须将 repo 分叉到如果您不是 cacheman 的所有者,请进行更改)

"scripts": {
    "test": "make test",
    "prepublish": "make",
    "postinstall": "make"//Added postinstall
}

查看 npm 脚本文档中的 examples 了解更多详细信息。