【问题标题】:Bowerrc post install hook not workingBowerrc 安装后挂钩不起作用
【发布时间】:2015-06-12 21:17:00
【问题描述】:

根据this post bower 应该能够在 1.3.1 及更高版本中运行安装后脚本。我正在使用凉亭 1.3.12。

这是我的 bowerrc 文件:

{
    "scripts": {
        "postinstall": "./node_modules/grunt-cli/bin/grunt"
    }
}

但是,当我使用 bower 安装软件包时,挂钩不会被执行。我做错了什么?

【问题讨论】:

  • Bower 对scripts hooks 的使用是针对依赖组件的父项目,而不是针对组件本身。 “这些钩子并非旨在为组件作者提供安装后的构建步骤。”您应该发布组件的已经经过验证的版本。
  • 提交构建文件不是一个坏主意吗?当 src 已经存在时,我不想用随机缩小的文件污染我的 repo。 (对我来说,当 npm 有安装后挂钩时,凉亭作者删除了安装后挂钩,这对我来说似乎有点愚蠢)。
  • 这可能并不总是理想的,但肯定有可能。不过,它们可能应该是有组织的,所以它们看起来不是随机的。例如,Bootstrap 目前保留一个/dist folder。而且,关于 NPM,它允许使用 prepublish script 和一个本身存储已发布文件的注册表来解决此问题,因此您可以发布构建的文件而无需将它们保存在您的存储库中。
  • 公平,不同意提交构建文件,无论它们是否在 dist 中。看起来像一个黑客。 npm prepublish 可能是一种解决方法,但如果包正在发布并与 bower 一起使用,它就没有帮助。
  • 如果 Bower 决定不需要安装新的软件包,它不会调用 postinstall 钩子

标签: javascript frontend bower


【解决方案1】:

我和你有同样的问题。 我已通过将变量 cwd 添加到 .bowerrc 文件来解决:

{
  "cwd": "./",  
   "scripts": {
        "postinstall": "grunt wiredep"
   }
 }

【讨论】:

    【解决方案2】:

    原因很简单,因为您的 bower.json 中没有任何包,或者所有包都已安装。

    请查看我在 github 中报告的问题:https://github.com/bower/bower/issues/2302

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-10
      相关资源
      最近更新 更多