2014-02-19 44 views
-1

安装(私有)依赖项时,我收到了一些意想不到的行为。意外的npm模块安装脚本行为

有关问题的缘故让我们假设我有两个包:

{ 
    "name": "Package_A", 
    .... 
    "dependencies": { 
    "grunt": "~0.4.2", 
    "Package_B": ""  
    } 
} 

而且

{ 
    "name": "Package_B", 
    "scripts": { 
    "install": "grunt" 
    }, 
    .... 
    "dependencies": { 
    "grunt": "~0.4.2", 
    "grunt-contrib-clean": "~0.5.0"  
    } 
} 

现在,当我运行NPM安装上(新鲜)Package_A,Package_B与grunt-contrib-clean安装一个依赖,运行咕噜(使用干净)。它一切正常。

现在,我立即将grunt-contrib-clean添加到Package_A依赖项,然后运行install(新复制再次)失败。
故宫安装脚本运行咕噜,咕噜找不到grunt-contrib-clean

本地NPM模块 “咕噜-contrib请清洁” 未找到。它是否安装?

我不确定该从哪里出发。我想知道是否有类似的问题NPM doesn't install module dependencies。但我对npm或咕噜声不太了解。

+0

我只是试着将Package_B安装脚本更改为'npm install && grunt package',它安装了依赖关系,但是无限循环地执行了这个命令:/ – MrJD

+0

^^那是因为npm install正在调用安装脚本:/ – MrJD

回答

0

Got it!
改变从安装到prepublish脚本作品

"scripts": { 
    "prepublish": "grunt package" 
    }, 

一定有什么东西在安装时做与操作的顺序。新奇。


该死

(更新)

从混帐回购协议( when it probably should)安装时

Npm doesn't run prepublish

+0

也许'postinstall'? – alex

+0

做同样的事情安装:( – MrJD