意外的npm模块安装脚本行为

时间:2014-02-19 22:22:17

标签: javascript node.js gruntjs 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"      
  }
}

现在,当我在(一个新的)Package_A上运行npm install时,Package_B以grunt-contrib-clean作为依赖项安装并运行grunt(使用clean)。一切正常。

现在,只要我将grunt-contrib-clean添加到Package_A依赖项并运行install(再次刷新副本)就失败了。
npm安装脚本运行grunt,grunt找不到grunt-contrib-clean

  

找不到本地Npm模块“grunt-contrib-clean”。它安装了吗?

我不确定从哪里开始。我想知道我是否有类似NPM doesn't install module dependencies的问题。但我对npm或grunt的了解还不够。

1 个答案:

答案 0 :(得分:0)

知道了!
将脚本从安装更改为预先发布工作

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

安装时必须与操作顺序有关。古怪。


该死的

(更新)

从git repo(Npm doesn't run prepublish)安装时

when it probably should