【问题标题】:How to update bower.json with installed packages?如何使用已安装的软件包更新 bower.json?
【发布时间】:2013-12-15 07:09:07
【问题描述】:

在我的项目中,我安装了 bower 组件,但没有 save 选项。现在,我想更新到bower.json

如何使用已安装的软件包更新 bower.json?

【问题讨论】:

  • 缺少一步到位的方法似乎是一个很大的缺陷。由于有卸载命令,似乎在没有--save 的情况下运行bower install 总是会更难,也不会更容易。
  • 如果您的 bower.json 中没有任何内容,只需将其删除并在控制台中输入 bower init

标签: javascript jquery package bower


【解决方案1】:

你可以使用bower-check-updates(你的机器上需要安装node.js):

bower-check-updates 是一个实用程序,它可以使用所有依赖项的最新版本自动调整 bower.json

bower-check-updates - 是 npm-check-updates 的一个分支,所以它都是一样的,但更新 bower.json,而不是 package.json

npm install -g bower-check-updates
bower-check-updates -u
bower install 

这将在全球范围内安装bower-check-updates,因此您可以从任何地方启动它。

附:有关 npm-check-updates 的更多信息,请参阅this topic

【讨论】:

  • 也许bower install
  • @ÁmonTamás bower install 没有更新 bower.json。
  • bower-check-updates 的作者已弃用该项目,转而支持 npm-check-updates,它增加了对更新 bower.json 的支持。
【解决方案2】:

bower-check-updates -u 之后,您必须运行bower install 而不是npm install

【讨论】:

    【解决方案3】:

    如果您不想为此编写脚本,小技巧:

    在做任何事情之前,例如在 bower2.json 中重命名您的 bower.json。

    那么你可以这样做:

    $ bower init

    (自动创建 bower.json 文件)。

    请注意,所有问题都应预先填写您当前的配置。

    何时询问您:

    将当前安装的组件设置为依赖项? 说是的,

    您现在在新的 bower.json 文件中拥有所有依赖项(您可以检查旧的 bo​​wer2.json 是否一切正常)

    【讨论】:

    • 它在执行此操作时提到的注册表选项是什么 - 我曾假设此命令只会执行本地操作。我选择将这个方便的问题保密,但想了解这意味着什么 - 是否有某种互联网凉亭注册表。我只是内联认为这就是 bower 可能会做 npm install 之类的事情。
    • @landed : 那将是凉亭包注册表 (bower.io/search) HTH
    • 这对我不起作用,因为bower.json 没有列出angular:'1.5.5'。这是因为我安装了angular-animate,并且因为它依赖于angular 1.5.5 bower 决定不在bower.json 中包含angular(考虑到当有人为此bower.json 执行bower install 时它会安装它) .如果有人从bower.json 中删除angular-animate,这将是一个问题,在这种情况下,bower 也不会安装angular,因为它没有列出。
    【解决方案4】:

    如果您安装的 bower 软件包不多,请尝试编写 bower install [package_name] --save。这只会更新您的 bower.json 文件。

    【讨论】:

      【解决方案5】:

      只需列出您的依赖项:

      bower list
      

      然后你应该像这样运行带有参数'--save'的所有安装命令:

      bower install bootstrap --save
      

      这是一项艰巨的工作,但如果您有上千个依赖项,您能否创建一个脚本来自动执行任务。

      【讨论】:

      • 这是一个很好的答案。谢谢!
      • 我发现只有大约 10 个包会出现问题,因为不清楚哪些包是作为其他包的依赖项下载的,这导致 bower 提示输入版本号。即使答案正确,生成的 bower.json 文件也不完全正确。我与塞巴斯蒂安的回答一起工作,这对我有用。
      • 没有在 bower.json 中声明的依赖由控制台上的“extraneous”标签标识。
      【解决方案6】:

      有点费劲的方法是运行bower list,查找标记为extraneous 的包,然后手动将它们添加到bower.json 中的依赖项中。

      如果有很多无关包,通过运行bower init并回答“将当前安装的组件设置为依赖项? ”。这将获取您当前的bower.json,阅读它,然后使用旧邮件中的信息创建新邮件。因此,在理想情况下,您将拥有相同的文件,只是添加了 extraneous 包。

      警告:首先,过程中可能会丢失一些东西(例如devDependecies)。其次,在最新版本的 bower (v1.2.7) 中,这将保留当前包信息!我觉得这是一个错误。但是,您可以保存旧文件并(手动)将其与生成的文件合并。

      此外,您应该通过opening a bower issue 询问选项或其他内容,因为这会受到许多开发人员的欢迎。

      【讨论】:

      • 注意:bower 1.3.3 保留当前包信息。
      猜你喜欢
      • 2015-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-13
      • 2021-06-14
      • 2021-10-17
      • 2021-12-13
      相关资源
      最近更新 更多