Announcing Meteor 1.2 – ES2015, Angular, React, and More

阅读 914
收藏 5

Today we're delighted to announce Meteor 1.2, our latest release of the Meteor JavaScript application platform.  It's our largest and most ambitious release to date, with big additions to nearly every part of the stack.  Visit the Meteor install page to get started with Meteor 1.2, or run meteor update to upgrade your existing system.

There's a lot to talk about, so let's get right into it.

Beginning today, ECMAScript 2015 is now the official JavaScript of the Meteor platform.  Every new Meteor project now uses ES2015 by default, in every JS file.  Want to use ES2015 in an existing app?  Just add the new ecmascript package.  We've taken great care to make our ES2015 support 100% backwards compatible: your existing code will continue to work unchanged, and you can make the transition incrementally mixing and matching new ES2015 and traditional JavaScript, even in the same files and functions.

As I've said before, we think anyone writing an app in JavaScript should be using ES2015.  And it's going to drive a lot of new JavaScript adoption from developers used to other languages.  So we're all in on it: theMeteor tutorial and a growing fraction of Meteor core is now pure ES2015.  We've found that it lets us write dramatically more consise and readable application code, thanks to built-in support for classes, block variable scoping, arrow functions, template strings, and numerous other improvements to the language.  To learn more about ES2015 and how valuable we've found it in our own work, watch Ben Newman's recent Devshop talk.

Official support for Angular and React

Meteor now includes official support for the Angular and React view engines alongside traditional Blaze templates.  No matter which you choose, the rest of the Meteor stack works for you – live database queries, Optimistic UI updates, hot code push, and ES2015 features seamlessly tie in to all three engines.  As you'd expect, components and other libraries built on React or Angular work well too.

Want a quick look at what each of the three options looks like in practice?  We've got a Meteor tutorial in each flavor: Blaze, React, and Angular.  Try them out, or use them as starting points for your own codebase.  The React integration is a new set of MDG-maintained packages that build on the great React work done by the community.  For Angular, we've pulled the popular urigo:angular package (now just angular) into core and integrated it with the balance of the Meteor stack.  For more on how to use these new view layers, visit the Angular Meteor site and our Getting started with React in Meteor page.

Mobile development

We put quite a bit of work into mobile application development in Meteor 1.2 as well.  Cordova is now at 5.2.0.  (See the Cordova release notes for details on the changes.)  A new crosswalk package adds support for the Crosswalk plugin, which offers a much improved web engine on older Android devices.  You can now install plugins from local filesystem and from Git URLs.  And lastly, Meteor now uses a system installation of the Android SDK for Android builds instead of embedding build tools in the Meteor distribution itself, making it easier to keep the mobile toolchain up to date.  If you don't have your own Android tools installed already, you can find more information about installing the Android SDK for Mac or Linux.

Faster builds and a more flexible platform

We've also got a new build pipeline in Meteor 1.2 that rebuilds much faster (especially on large code bases), supports cross-package imports in LESS and Stylus, and powers our ES2015 transpilation stage so that you can write modern JavaScript that still runs on every supported Meteor platform.  The new build system is pluggable, allowing you to write custom compilers, minifiers, and linters.  See the Build Plugins API for more information.

And much more

We've made many other changes across the stack, including performance improvements.  Two notable examples: many live queries run more efficently, and we've enabled websocket compression using permessage-deflate to reduce on-the-wire bandwidth between a Meteor server and its connected clients.

For a full list of changes, consult the release notes and our notes on updating to Meteor 1.2.

As always, we couldn't do this without the help of the incredible Meteor community.  Thanks to everyone who contributed code and issue reports to the project, to the rapidly growing number of you who've written Atmosphere packages, and to all of you who helped test 1.2 RCs and our early work on React, Angular, and ES2015.  Enjoy!