【问题标题】:Unexpected npm module install script behaviour意外的 npm 模块安装脚本行为
【发布时间】:2014-03-20 13:42:51
【问题描述】:

在安装(私有)依赖项时,我遇到了一些相当意外的行为。

为了问题,假设我有两个包:

{
  "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 依赖项并运行安装(再次复制)就会失败。
npm install脚本运行grunt,grunt找不到grunt-contrib-clean

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

我不确定从这里去哪里。我想知道我是否遇到与NPM doesn't install module dependencies 类似的问题。但我对 npm 或 grunt 了解得不够多。

【问题讨论】:

  • 我只是尝试将 Package_B 安装脚本更改为 npm install && grunt package,它安装了依赖项,但随后无限循环命令而不做任何事情:/
  • ^^ 那是因为 npm install 正在调用安装脚本:/

标签: javascript node.js gruntjs npm


【解决方案1】:

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

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

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


该死的

(更新)

Npm doesn't run prepublish 从 git repo (when it probably should) 安装时。

【讨论】:

  • 和安装一样:(
猜你喜欢
  • 1970-01-01
  • 2018-03-25
  • 2018-04-28
  • 2015-02-07
  • 2011-12-26
  • 2016-11-14
  • 2018-03-15
  • 2016-03-27
  • 2019-12-12
相关资源
最近更新 更多