我正在开发一款尚未投入生产的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,因此没有意识到已经应用了包更新。这是准确的还是我只是误解了什么?
答案 0 :(得分:32)
现在你可以简单地做到
meteor update --all-packages
答案 1 :(得分:28)
扩展之前的答案,您可以使用以下方法更新所有包:
grep -ve '^#' .meteor/packages | xargs meteor update
答案 2 :(得分:15)
暂时看起来您有2个选项可用于您希望使用的更新包:
meteor remove provider:package_name
和meteor add provider:package_name
meteor add provider:package_name@X.X.X
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