Back to Blog

Announcing Meteor 1.3 - ES2015 Modules, App Testing, Mobile Improvements and More

March 28, 2016 By Zoltan Olah
Vote on Hacker News
Today we’re excited to announce Meteor 1.3, the latest release of the Meteor JavaScript application platform. The focus of this major release is to help teams with production applications manage, scale, and test their Meteor codebases, and to continue our work to align the Meteor platform with the latest innovations in JavaScript. Run meteor update to upgrade existing apps or visit the Meteor install page if you’re just getting started.
Meteor 1.3’s focus is based on listening to our production customers, whose experiences building and running Meteor apps now span multiple years and major releases. Better support for application testing was near the top of everyone’s lists, and that’s why Meteor 1.3 now includes core support for both unit and integration tests. Unit testing is more effective when your code is divided into clear units, and that’s one reason why Meteor 1.3 supports a standards-compliant module system that integrates seamlessly with Node and npm. For mobile developers, Meteor 1.3 provides a more robust hot code push system for Cordova apps. Meteor’s Livedata system now supports tunable queries to help scale large apps. We’ve improved our Angular and React integrations, making Meteor one of the easiest ways to build full-stack applications using these popular view layers.
For the first time, we’re publishing the Meteor Guide alongside the release. The guide contains our specific recommendations about best practices for building Meteor apps, from structuring your modules to designing database schemas to picking the right UI abstractions. A Meteor developer familiar with the guide will be instantly productive on any Meteor project. In case your needs move beyond what the guide recommends, we also provide comprehensive, end-to-end vendor support - a unique offering for JavaScript.
With the acceptance of the ES2015 standard and the community rallying behind npm, there has never been a better time to be a JavaScript developer. We’ve made great strides in aligning Meteor 1.3 with the wider JavaScript ecosystem and plan to continue along this path in future releases. For instance, Meteor 1.3 ships out of the box with the latest, mature ES2015 language features enabled and builds source maps automatically - empowering you to develop and debug purely in ES2015. Our new npm integration enables developers to npm install both client and server packages directly into their applications, including the wide array of React and Angular components available in npm.
We’ve worked tirelessly over the last three months to bring you a release that’s had more eyes on it from the community and our customers than ever before. With 16 betas and 13 release candidates, tested by a dedicated community of developers across the world, Meteor 1.3 may be our most polished release yet. With that said, if you find bugs in 1.3, rest assured you won’t have to wait as long for the next official release. The prerelease cycle leading up to 1.3 vividly demonstrated the value of releasing updates as early and often as possible, making it difficult to imagine going back to monolithic, infrequent releases.
Keep reading for more details.

ES2015 Modules

Though Meteor 1.2 introduced support for many new ECMAScript 2015 features, one of the most notable omissions was ES2015 import and export syntax. Meteor 1.3 fills that gap with a fully standards-compliant module system that works on both the client and the server, solves multiple long-standing problems for Meteor applications (such as controlling file load order), all backwards compatible with existing Meteor code. 
We’ve also added support for consuming npm packages directly in a Meteor app by running npm install (or meteor npm install if you don’t already have a version of npm available). Packages will work on both client and server if designed to do so by the author. This integration allows us to begin moving certain core packages to npm and removes the need to create wrapper packages in Atmosphere for most npm packages. This news should be especially welcome for React and Angular developers, as those package ecosystems can now be easily consumed via npm.

Built-in application testing

We’ve included the ability to perform testing at the application level. There are two testing modes, unit and integration. In unit testing mode (meteor test), Meteor only loads test modules and their specific imports, allowing you to isolate and test specific sections of code. Integration tests (meteor test --full-app) load all your application code in addition to your tests, allowing you to verify that everything fits together as expected.
Combined with ES2015 modules, our new testing feature removes the need to break your app up into multiple local packages just for the sake of testability. It’s also possible for anyone to write a driver to run tests under a specific testing framework. So far, we’ve worked with the community to create a driver for Mocha, and we expect other drivers to follow shortly.

New Cordova implementation

Meteor 1.3 comes with a completely rewritten Cordova layer for building iOS and Android applications in Meteor. New, robust iOS and Android wrappers detect and handle faulty JavaScript application code. It is now possible to recover from hot code pushes of broken code that previously required an application reinstall. The hot code push system is also much faster and uses incremental and resumable updates to save network bandwidth and battery life. Meteor 1.3 includes support for WKWebView on iOS (including iOS 8), which dramatically improves application performance and frame rates. Finally, Cordova has been upgraded to the latest versions (Cordova 6.0.0, Cordova iOS 4.1.0, Android 5.1.1)

In addition…

We’ve improved performance for app rebuilds and certain minimongo update queries. The official Meteor Guide is fully up to date with our guidance on Meteor best practices and includes a section to assist with upgrading from 1.2. Be sure to check out our full release notes for the complete list of improvements.

What’s up next?

There’s more coming, including updates to Node and Mongo, a full transition to npm, and some important work behind the scenes to decouple many of the core packages. For more, watch our recent Meteor Night talk and join the discussion on Meteor forums.

Vote on Hacker News