如果不是来自NPM的依赖关系,NPM安装不会触发babel构build

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

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

它工作,当我做npm安装时,它会触发cacheman里面的构build脚本。

但是,如果我这样做:

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

它不会工作。 npm install不会触发cacheman的构build过程。

这是为什么?

您所指的脚本是在将npm模块发布到npmregistry之前运行的预发布脚本。 在这里检查package.json#L9

显示在这里

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

当你从github安装时,没有发布步骤,所以脚本没有运行。

如果你只想从github安装并运行脚本,你可以把它作为cacheman的postinstall脚本来添加(如果你不是cacheman的拥有者,你将不得不分叉repo进行修改)

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

查看npm脚本文档中的示例以获取更多详细信息。