Meteor on windows (10) doesnt appear to work very well

I updated from meteor 1.5.2 to 1.6 on windows 10. Not working. Get a bson not found error. Did a meteor npm remove bson then a meteor npm install bson to no avail. Had serious issues recently going from 1.5.1 to 1.5.2. So I uninstalled meteor as I’m sure that’s what I did last time. Then went to re-install it and see that there is all this chocolately stuff to do now.
Anyway the main point is why does meteor keep saying just run meteor update and all will be good?
Or if its just that meteor doesnt work on windows then please say ‘doesnt work on windows’. I’ve spent too much time messing around with meteor updates. So much that it is getting to the point where instead of considering Meteor + React I am considering just React.

W20171101-19:57:03.685(0)? (STDERR) C:\Users\myuser\AppData\Local\.meteor\packages\meteor-tool\1.6.0\mt-os.windows.x86_32\dev_bundle\server-lib\node_modules\fibers\future.js:280
W20171101-19:57:03.692(0)? (STDERR)                                             throw(ex);
W20171101-19:57:03.693(0)? (STDERR)                                             ^
W20171101-19:57:03.695(0)? (STDERR)
W20171101-19:57:03.696(0)? (STDERR) Error: Cannot find module 'bson'
W20171101-19:57:03.696(0)? (STDERR)     at Function.Module._resolveFilename (module.js:513:15)
W20171101-19:57:03.697(0)? (STDERR)     at Function.Module._load (module.js:463:25)
W20171101-19:57:03.698(0)? (STDERR)     at Module.require (module.js:556:17)
W20171101-19:57:03.699(0)? (STDERR)     at require (internal/module.js:11:18)
W20171101-19:57:03.703(0)? (STDERR)     at Object.<anonymous> (C:\Users\myuser\AppData\Local\.meteor\packages\cfs_gridfs\0.0.33\npm\node_modules\mongodb\lib\mongodb\collection.js:10:16)
W20171101-19:57:03.704(0)? (STDERR)     at Module._compile (module.js:612:30)
W20171101-19:57:03.705(0)? (STDERR)     at Object.Module._extensions..js (module.js:623:10)
W20171101-19:57:03.706(0)? (STDERR)     at Module.load (module.js:531:32)
W20171101-19:57:03.707(0)? (STDERR)     at tryModuleLoad (module.js:494:12)
W20171101-19:57:03.707(0)? (STDERR)     at Function.Module._load (module.js:486:3)

Ok after re-installing meteor on win 10 I get this

[[[[[ c:\mercurial\repos\myapp ]]]]]

=> Started proxy.
=> Errors prevented startup:

   While checking for cfs:gridfs@0.0.33:
   error: No compatible binary build found for this package. Contact the package author and ask them to publish it
   for your platform.

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

Your development database is using mmapv1, the old, pre-MongoDB 3.0 database engine. You should consider upgrading
to Wired Tiger, the new engine. The easiest way to do so in development is to run meteor reset. If you'd like to
migrate your database, please consult https://docs.mongodb.org/v3.0/release-notes/3.0-upgrade/

=> Started MongoDB.

Try:

  1. Remove node_modules.
  2. meteor reset
  3. meteor npm install
  4. Try a build meteor

If that doesn’t work try this:

  1. go to C:\Users\<username>\AppData\Local\.meteor\packages\meteor-tool
  2. delete 1.6
  3. go to a non project directory and reinstall meteor like this: meteor --help --release 1.6
  4. Go to step 1 above.

@brucejo tried each of those steps (the second one using choco to install meteor) but still get same error. Thanks for help though.

I removed ryw:blog as that had the cfs:gridfs@0.0.33 dependency. That fixed app build.

But in chrome I get a blank page at localhost:3000 and a lot of errors, the first of which is

ecmascript-runtime-client.js?hash=236033036aa3b0629009d2af14113e2413052567:46 Uncaught Error: The core-js npm package could not be found in your node_modules 
directory. Please run the following command to install it:

  meteor npm install --save core-js

Then when I run the npm install I get this error

c:\myapp> meteor npm install --save core-js
npm WARN myapp@1.0.0 No repository field.

npm ERR! Cannot read property '0' of undefined

Trying this fix now meteor update --release 1.5.2

Abandoned rollback to 1.5.2 too many ‘extracting’ cycles. But app now starts with 1.6 but does not load properly - displays iron:router default page so appears not to be able to find router JS in app. Did the project structure become stricter with 1.6?

Works now. I commented out code on client/blog.js page that was used by the now removed (see above) ryw:blog package (not sure if this was the core issue though). Also, separately, I will update project structure anyway as it seems to make sense and may be a requirement soon. I will likely look at meteor plus React next as that seems to be a popular choice.

Ok so after all that malarky this is my main suggestion to Meteor!!.
Instead of writing this out to console for an app running on an older version of meteor

=> Meteor 1.6 is available. Update this project with ‘meteor update’.

write out something like this

=> Meteor 1.6 is available. 
=> If running this project on Linux/MacOS you can update this project with 'meteor update'.
=> If running this project on Windows you should first re-install meteor and then update this project with 'meteor update'. Refer to this url for more info.
2 Likes

Actually what you should do is probably run meteor update normally, unless you’re updating from a much older version. Then you need to follow migration instructions between those releases, if any.

The reason I say you should meteor update first is because Meteor 1.6 on Windows now supports 64 bit and running any meteor commands for a 64bit version of meteor-tool on a Meteor project that’s pre-1.6 you’re gonna have a bad time, and need to manually reinstall the 32bit version the long way.

I do agree with you though, that they should maybe make upgrade instructions more verbose in the logs.

I will say though, that the choco installer sometimes seems to hang up and never terminate. Eventually you just gotta Ctrl+C out of it and hope that it installed properly.

Also don’t forget to disable Windows Defender Realtime Protection (or whatever realtime AV your are using) temporarily when installing any version of Meteor. It writes hundreds of thousands of little files into your %TEMP% folder and Windows will go crazy trying to keep up. This one step will make version installing much faster. I also added the following folders to Windows Defender “exclusion” list so that installing Meteor or npm packages will run faster also.

  • c:\users<your name>\AppData\Local.meteor
  • c:\users<your name>\dev|MeteorApps or whatever folder(s) you have your Meteor apps contained under
4 Likes

That’s definitely good advice, thanks :slight_smile:

Meteor update was fine on my windows 10 test machine. It’s not meteor’s fault if some npm / atmosphere packages haven’t been updated to node 8. It’s not like they’ve had months to update or anything…

1 Like

While we realize this would be ideal, we couldn’t update the existing Meteor to provide this message about the new version. We can try to release a new fix to the old release series, hope you’ll update to that rather than going to 1.6 directly, and then deliver the more helpful message, but since most developers are likely to jump to the latest release directly, we’ve tried to make it clear in the release notes and in the announcement post for 1.6.

If you’re running into this problem, please help us improve the installer by running with the Chocolatey --verbose or --debug flags and determining where the problem is occurring. The source code is now open-source and available here and much easier to debug than the GUI installer. The Windows GUI installer had its share of problems as well and our hope is that the Chocolatey installer will provide a better experience long-term.

1 Like

The problem with this, as is eluded at by the message, is that cfs:gridfs doesn’t have binary dependencies for Node 8. I’m assuming that since the package author didn’t post any updates to it in over a full year, that it’s unlikely that they will. In addition to this, it’s already been my understanding that the cfs:gridfs package is generally no longer recommended (most likely due to the fact that it’s no longer actively maintained?).

This certainly seems like a problem. Can you run:

meteor npm install --save core-js

With the --verbose flag as well and provide that output somewhere? It sounds like this is likely worth reporting as an issue on Meteor Issues. Please include any exact versions you can!

While the removal of node_modules and a meteor reset is certainly good practice when updating between major versions, I hope all the otherwise complicated steps to reinstall Meteor on Windows are greatly simplified by choco. Ultimately, I think it should be possible to just run:

choco uninstall meteor

followed by

choco install meteor

I’m sorry there have been problems with Windows 10, as indicated in this thread, but I can attest that I have tested Meteor quite extensively with Meteor 1.6 and have had far less problems than ever before. We chose Chocolatey due to its overwhelming popularity in the Windows developer community, not just as a convoluted way to install Meteor! It’s our hope that it should be easier to debug and fix problems with a scripted installer rather than a compiled, GUI, WiX installer (as it was before). Additionally, we now have a Windows test suite which runs on each commit to the repository. We’re certainly committed to improving the Windows experience, and I’d bet that Meteor 1.6 is the best Meteor release for Windows to date.

We (as in, the core maintainers of the project) don’t use Windows to develop Meteor on a regular basis, so any Windows developers who can help us improve by doing additional digging and debugging are greatly appreciated. A specific shout out to @brucejo who has already done an incredible job of helping us track down a lot of the problems which were fixed in Meteor 1.6!

2 Likes