Meteor update to 0.8.3 breaks app

2019-05-09 22:56发布

问题:

Today I updated my Meteor project to version 0.8.3

$> [master●] % mrt update
✓ normalize.css
    branch: https://github.com/rithis-archive/meteor-normalize.css.git#master
✓ Meteor.cron
    branch: https://github.com/alexsuslov/Meteor.cron.git#master
✓ iron-router
    tag: https://github.com/EventedMind/iron-router.git#v0.9.1
✓ mongodb-server-aggregation
    tag: https://github.com/zvictor/meteor-mongo-server.git#v1.0.3
✓ reactive-publish
    tag: https://github.com/Diggsey/meteor-reactive-publish.git#v0.1.6
✓ reststop2
    tag: https://github.com/Differential/reststop2.git#v0.6.0
✓ kadira
    tag: https://github.com/meteorhacks/kadira.git#v2.4.13
✓ subs-manager
    tag: https://github.com/meteorhacks/subs-manager.git#v1.0.2
✓ async
    tag: https://github.com/peerlibrary/meteor-async.git#v0.9.0-1
✓ npm
    tag: https://github.com/arunoda/meteor-npm.git#v0.2.6
✓ iron-layout
    tag: https://github.com/EventedMind/iron-layout.git#v0.2.0
✓ server-deps
    tag: https://github.com/Diggsey/meteor-server-deps.git#v0.1.2
✓ blaze-layout
    tag: https://github.com/EventedMind/blaze-layout.git#v0.2.5
✓ iron-core
    tag: https://github.com/EventedMind/iron-core.git#v0.2.0
✓ iron-dynamic-template
    tag: https://github.com/EventedMind/iron-dynamic-template.git#v0.2.1

Done installing smart packages

Now when I run it $> mrt I get the following output:

Stand back while Meteorite does its thing

Done installing smart packages

Ok, everything's ready. Here comes Meteor!

[[[[[ ~/tmp/test ]]]]]

=> Started proxy.
=> Meteor 0.8.3 is available. Update this project with 'meteor update'.
=> Started MongoDB.     
iron-router: updating npm dependencies -- connect...
kadira: updating npm dependencies -- debug, usage...
=> Errors prevented startup:

While building package `iron-router`:
error: no such package: 'reactive-dict@1.0.0'
error: no such package: 'deps@1.0.0'
error: no such package: 'underscore@1.0.0'
error: no such package: 'ejson@1.0.0'
error: no such package: 'jquery@1.0.0'
error: no such package: 'ui@1.0.0'
error: no such package: 'iron'
error: no such package: 'cmather'
error: no such package: 'webapp@1.0.0'

=> Your application has errors. Waiting for file change.

Now when I do meteor update the problem remains. Even if I first do meteor update and then mrt update I end up with the same result. Any suggestions ?

回答1:

The problem is that running mrt update has updated iron:router to the latest version (0.9.1), which is only compatible with meteor 0.9 release candidates (see the explanation here : Installation issues with iron-router (newest) on Windows 7 x64 (Meteor 0.8.3)).

What you need to do is downgrading iron-router to 0.8.2 which is compatible with meteor 0.8.3.

To do so, you'll have to modify your smart.json like this :

{
  "packages": {
    "iron-router":{
      "version": "0.8.2"
    }
}

Then clean your project by removing smart.lock and run mrt install to make sure meteorite has accounted for the change.

If everything is OK the iron-router version symlinked in your project packages folder should point to iron-router@0.8.2