将所有Meteor软件包更新到最新版本

时间:2015-02-19 17:06:42

标签: meteor

我正在开发一款尚未投入生产的Meteor应用程序,因此我可以在采用新的软件包版本时迅速采取行动(例如,在我集成它之后几小时内,useraccounts会出现严重的版本问题。这就是我认为meteor update要完成的事情。然而,当我跑:

meteor update

从我的项目中,我被告知包已更新,但.meteor /版本保持不变。

我可以通过运行meteor add someone:package@whatever来升级软件包,但这只是将.meteor / versions的版本依赖性改为.meteor / packages,即使它似乎在进行升级。我很高兴在我投入生产时锁定版本,但似乎在开发中我应该能够使用更新命令,尤其是meteor list表示下一步。

我设法通过删除.meteor / versions和.meteor / local并运行meteor update来升级我的所有软件包,但这看起来很混乱。

我还找到了this issue,但它已经关闭了。它应该重新开放还是我应该开一个新问题?我理解semver是如何工作的,但我认为问题是Meteor没有将其约束求解器结果写入.meteor / versions,因此没有意识到已经应用了包更新。这是准确的还是我只是误解了什么?

9 个答案:

答案 0 :(得分:32)

现在你可以简单地做到

meteor update --all-packages

答案 1 :(得分:28)

扩展之前的答案,您可以使用以下方法更新所有包:

grep -ve '^#' .meteor/packages | xargs meteor update

答案 2 :(得分:15)

暂时看起来您有2个选项可用于您希望使用的更新包:

  1. 通过meteor remove provider:package_namemeteor add provider:package_name
  2. 删除并添加关注的包
  3. 通过meteor add provider:package_name@X.X.X
  4. 手动更新包及其特定版本的软件包

    Meteor won't update packages unless you remove and add them #2500

答案 3 :(得分:14)

最简单的方法是删除.meteor / versions的内容然后保存。下次运行meteor时,它会将所有软件包更新到最新版本。

答案 4 :(得分:13)

您也可以使用meteor update provider:package_name

答案 5 :(得分:2)

只是对@Meteorpoly回答的小小补充:

您也可以手动编辑.meteor / versions文件中的软件包版本,meteor将在下一次/当前运行时将其选中

答案 6 :(得分:1)

来自Meteor docs:meteor update --packages-only

此命令将更新所有未在本地构建的软件包,具有可用更新,并且与您正在使用的流星版本兼容。

答案 7 :(得分:1)

现在好像是

meteor update

足以更新所有包

答案 8 :(得分:0)

我使用了packagecheck。它分析了该项目,向我显示了可用的更新并协助了常规更新。

$ npm install -g packagecheck
$ packagecheck