更新所有Meteor包到最新版本

27
我正在开发一个Meteor应用程序,尚未投入生产,因此在采用新包版本时可以快速移动(例如,当我集成了useraccounts后,几个小时后它就有了重大的版本升级)。这就是我认为meteor update的目的。然而,当我运行: meteor update 从我的项目中,我被告知已更新包,但.meteor/versions保持不变。
我可以通过运行meteor add someone:package@whatever来升级软件包,但这只是将版本依赖项从.meteor/versions移动到.meteor/packages,即使它似乎做了升级。我很高兴在进入生产时锁定版本,但似乎在开发中我应该能够使用更新命令,特别是因为meteor list表示这是下一步。
我成功升级了所有软件包,方法是删除.meteor/versions和.meteor/local,然后运行meteor update,但这看起来很杂乱。
我也发现了这个问题,但它已经关闭了。它应该重新打开还是我应该开一个新问题?我理解semver的工作原理,但我认为问题在于Meteor没有将其约束求解器结果写入.meteor/versions,因此没有意识到软件包更新已应用。这准确吗,还是我误解了什么?

1
你能否发布 meteor list 的完整输出? - Tarang
10个回答

37

现在您可以简单地执行

meteor update --all-packages

28

在之前的回答基础上,你可以使用以下命令更新所有软件包:

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

这是对所发布问题的正确答案。谢谢。 - Nick Sarafa

17

在执行完 meteor update package-xyz 后,你需要做一些事情来使其在下次重启后生效吗?需要编辑配置文件吗? - pferrel

14

您也可以使用 meteor update provider:package_name


13

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


这是我发现的最有效和最简单的方法。 - Malith

2

针对 @Meteorpoly 的回答,我有些补充:

你也可以手动在 .meteor/versions 文件中编辑包的版本号,Meteor 会在下一次或当前运行时自动更新版本号。


2

来自 Meteor 文档:meteor update --packages-only

该命令会更新所有未在本地构建的、有可用更新并且与您使用的 Meteor 版本兼容的包。


0

假设您希望保持当前发布的Meteor版本,请执行以下操作:

meteor --release foo    update --all-packages

其中 foo 表示您目前使用的 Meteor 发布版本... 您可以通过查看文件来确定您的发布版本

cat .meteor/release

对我而言,它具有内容

METEOR@1.10.2

所以我的当前 Meteor 发布版本是 1.10.2 ... 如果要保留当前的 Meteor 发布版本但升级所有软件包以匹配我的发布版本 1.10.2,则命令为

meteor --release 1.10.2    update --all-packages

另外,如果您希望完全升级到最新的Meteor版本和该版本的软件包升级,则可以执行以下操作:

meteor update --all-packages

0

现在似乎是这样

meteor update

只需要更新所有的软件包即可


-1

我使用了packagecheck。它分析了项目,显示了可用的更新并协助进行了一般的更新。

$ npm install -g packagecheck
$ packagecheck

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接