Changelog History
Page 11
-
v1.8.0.1 Changes
November 23, 2018๐ฅ Breaking changes
N/A
Migration steps
N/A
๐ Changes
๐ฆ The
useragent
npm package used bywebapp
and (indirectly) by themodern-browsers
package has been updated from 2.2.1 to 2.3.0. Thechromium
browser name has been aliased to use the same minimum modern version aschrome
, and browser names are now processed case-insensitively by themodern-browsers
package. PR #10334๐ Fixed a module caching bug that allowed
findImportedModuleIdentifiers
to return the same identifiers for the modern and legacy versions of a given module, even if the set of imported modules is different (for example, because Babel injects fewer@babel/runtime/...
imports into modern code). Now the caching is always based on the SHA-1 hash of the generated code, rather than trusting the hash provided by compiler plugins. PR #10330
-
v1.7 Changes
May 28, 2018๐ฅ Breaking changes
N/A
Migration Steps
N/A
๐ Changes
- ๐ป More than 80% of internet users worldwide have access to a web browser that natively supports the latest ECMAScript features and keeps itself updated automatically, which means new features become available almost as soon as they ship. In other words, the future we envisioned when we first began compiling code with Babel is finally here, yet most web frameworks and applications still compile a single client-side JavaScript bundle that must function simultaneously in the oldest and the newest browsers the application developer wishes to support.
That choice is understandable, because the alternative is daunting: not only must you build multiple JavaScript and CSS bundles for different browsers, with different dependency graphs and compilation rules and webpack configurations, but your server must also be able to detect the capabilities of each visiting client, so that it can deliver the appropriate assets at runtime. Testing a matrix of different browsers and application versions gets cumbersome quickly, so it's no surprise that responsible web developers would rather ship a single, well-tested bundle, and forget about taking advantage of modern features until legacy browsers have disappeared completely.
With Meteor 1.7, this awkward balancing act is no longer necessary, because Meteor now automatically builds two sets of client-side assets, one tailored to the capabilities of modern browsers, and the other designed to work in all supported browsers, thus keeping legacy browsers working exactly as they did before. Best of all, the entire Meteor community relies on the same system, so any bugs or differences in behavior can be identified and fixed quickly.
In this system, a "modern" browser can be loosely defined as one with full native support for
async
functions andawait
expressions, which includes more than 80% of the world market, and 85% of the US market (source). This standard may seem extremely strict, sinceasync
/await
was just finalized in ECMAScript 2017, but the statistics clearly justify it. As another example, any modern browser can handle nativeclass
syntax, though newer syntax like class fields may still need to be compiled for now, whereas a legacy browser will need compilation for both advanced and basicclass
syntax. And of course you can safely assume that any modern browser has a nativePromise
implementation, becauseasync
functions must returnPromise
s. The list goes on and on.This boundary between modern and legacy browsers is designed to be tuned over time, not only by the Meteor framework itself but also by each individual Meteor application. For example, here's how the minimum versions for native ECMAScript
class
support might be expressed:import { setMinimumBrowserVersions } from "meteor/modern-browsers"; setMinimumBrowserVersions({ chrome: 49, firefox: 45, edge: 12, ie: Infinity, // Sorry, IE11. mobile_safari: [9, 2], // 9.2.0+ opera: 36, safari: 9, electron: 1, }, "classes");
The minimum modern version for each browser is simply the maximum of all versions passed to
setMinimumBrowserVersions
for that browser. The Meteor development server decides which assets to deliver to each client based on theUser-Agent
string of the HTTP request. In production, different bundles are named with unique hashes, which prevents cache collisions, though Meteor also sets theVary: User-Agent
HTTP response header to let well-behaved clients know they should cache modern and legacy resources separately.For the most part, the modern/legacy system will transparently determine how your code is compiled, bundled, and delivered—and yes, it works with every existing part of Meteor, including dynamic
import()
and even the oldappcache
package. However, if you're writing dynamic code that depends on modern features, you can use the booleanMeteor.isModern
flag to detect the status of the current environment (Node 8 is modern, too, of course). If you're writing a Meteor package, you can callapi.addFiles(files, "legacy")
in yourpackage.js
configuration file to add extra files to the legacy bundle, orapi.addFiles(files, "client")
to add files to all client bundles, orapi.addFiles(files, "web.browser")
to add files only to the modern bundle, and the same rules apply toapi.mainModule
. Just be sure to callsetMinimumBrowserVersions
(in server startup code) to enforce your assumptions about ECMAScript feature support.We think this modern/legacy system is one of the most powerful features we've added since we first introduced the
ecmascript
package in Meteor 1.2, and we look forward to other frameworks attempting to catch up.๐ฆ Although Meteor does not recompile packages installed in
node_modules
by default, compilation of specific npm packages (for example, to support older browsers that the package author neglected) can now be enabled in one of two ways:- Clone the package repository into your application's
imports
directory, make any modifications necessary, then usenpm install
to linkthe-package
intonode_modules
:sh meteor npm install imports/the-package
Meteor will compile the contents of the package exposed viaimports/the-package
, and this compiled code will be used when you importthe-package
in any of the usual ways:js import stuff from "the-package" require("the-package") === require("/imports/the-package") import("the-package").then(...)
This reuse of compiled code is the critical new feature that was added in Meteor 1.7. - Install the package normally with
meteor npm install the-package
, then create a symbolic link to the installed package elsewhere in your application, outside ofnode_modules
:sh meteor npm install the-package cd imports ln -s ../node_modules/the-package .
Again, Meteor will compile the contents of the package because they are exposed outside ofnode_modules
, and the compiled code will be used wheneverthe-package
is imported fromnode_modules
.
Note: this technique also works if you create symbolic links to individual files, rather than linking the entire package directory.
- Clone the package repository into your application's
In both cases, Meteor will compile the exposed code as if it was part of your application, using whatever compiler plugins you have installed. You can influence this compilation using
.babelrc
files or any other techniques you would normally use to configure compilation of application code. PR #9771 Feature #6~Note: since compilation of npm packages can now be enabled using the techniques described above, Meteor will no longer automatically scan
node_modules
directories for modules that can be compiled by compiler plugins. If you have been using that functionality to import compiled-to-JS modules fromnode_modules
, you should start using the symlinking strategy instead.~ Follow-up note: this optimization was reverted in Meteor 1.7.0.1 (see above).โก๏ธ Node has been updated to version 8.11.2, officially fixing a cause of frequent segmentation faults in Meteor applications that was introduced in Node 8.10.0. Meteor 1.6.1.1 shipped with a custom build of Node that patched this problem, but that approach was never intended to be permanent.
โฌ๏ธ The
npm
package has been upgraded to version 5.10.0, and our fork of itspacote
dependency has been rebased against version 7.6.1.Applications may now specify client and server entry point modules in a newly-supported
"meteor"
section ofpackage.json
:"meteor": { "mainModule": { "client": "client/main.js", "server": "server/main.js" } }
When specified, these entry points override Meteor's default module loading semantics, rendering
imports
directories unnecessary. IfmainModule
is left unspecified for either client or server, the default rules will apply for that architecture, as before. To disable eager loading of modules on a given architecture, simply provide amainModule
value offalse
:"meteor": { "mainModule": { "client": false, "server": "server/main.js" } }
In addition to
meteor.mainModule
, the"meteor"
section ofpackage.json
may also specifymeteor.testModule
to control which test modules are loaded bymeteor test
ormeteor test --full-app
:"meteor": { "mainModule": {...}, "testModule": "tests.js" }
If your client and server test files are different, you can expand the
testModule
configuration using the same syntax asmainModule
:"meteor": { "testModule": { "client": "client/tests.js", "server": "server/tests.js" } }
The same test module will be loaded whether or not you use the
--full-app
option. Any tests that need to detect--full-app
should checkMeteor.isAppTest
. The module(s) specified bymeteor.testModule
can import other test modules at runtime, so you can still distribute test files across your codebase; just make sure you import the ones you want to run. PR #9714๐ The
meteor create
command now supports a--minimal
option, which creates an app with as few Meteor packages as possible, in order to minimize client bundle size while still demonstrating advanced features such as server-side rendering. This starter application is a solid foundation for any application that doesn't need Mongo or DDP.โก๏ธ The
meteor-babel
npm package has been updated to version 7.0.0-beta.49-1. Note: while Babel has recently implemented support for a new kind ofbabel.config.js
configuration file (see this PR), and future versions of Meteor will no doubt embrace this functionality, Meteor 1.7 supports only.babelrc
files as a means of customizing the default Babel configuration provided by Meteor. In other words, if your project contains ababel.config.js
file, it will be ignored by Meteor 1.7.โก๏ธ The
reify
npm package has been updated to version 0.16.2.๐ฆ The
meteor-node-stubs
package, which provides stub implementations for any Node built-in modules used by the client (such aspath
andhttp
), has a new minor version (0.4.1) that may help with Windows installation problems. To install the new version, runmeteor npm install meteor-node-stubs@latest
โก๏ธ The
optimism
npm package has been updated to version 0.6.3.โก๏ธ The
minifier-js
package has been updated to useuglify-es
3.3.9.โ Individual Meteor
self-test
's can now be skipped by adjusting theirdefine
call to be prefixed byskip
. For example,selftest.skip.define('some test', ...
will skip running "some test". PR #9579โฌ๏ธ Mongo has been upgraded to version 3.6.4 for 64-bit systems, and 3.2.19 for 32-bit systems. PR #9632
NOTE: After upgrading an application to use Mongo 3.6.4, it has been observed (#9591) that attempting to run that application with an older version of Meteor (via
meteor --release X
), that uses an older version of Mongo, can prevent the application from starting. This can be fixed by either runningmeteor reset
, or by repairing the Mongo database. To repair the database, find themongod
binary on your system that lines up with the Meteor release you're jumping back to, and runmongodb --dbpath your-apps-db --repair
. For example:~/.meteor/packages/meteor-tool/1.6.0_1/mt-os.osx.x86_64/dev_bundle/mongodb/bin/mongod --dbpath /my-app/.meteor/local/db --repair
โก๏ธ The
mongodb
driver package has been updated from version 2.2.34 to version 3.0.7. PR #9790 PR #9831 Feature #268๐ฆ The
cordova-plugin-meteor-webapp
package depended on by the Meteorwebapp
package has been updated to version 1.6.0. PR #9761Any settings read from a JSON file passed with the
--settings
option during Cordova run/build/deploy will be exposed inmobile-config.js
via theApp.settings
property, similar toMeteor.settings
. PR #9873๐ The
@babel/plugin-proposal-class-properties
plugin provided bymeteor-babel
now runs with theloose:true
option, as required by other (optional) plugins like@babel/plugin-proposal-decorators
. Issue #9628๐ฆ The
underscore
package has been removed as a dependency frommeteor-base
. This opens up the possibility of removing 14.4 kb from production bundles. Since this would be a breaking change for any apps that may have been using_
without having any packages that depend onunderscore
besidesmeteor-base
, we have added an upgrader that will automatically addunderscore
to the.meteor/packages
file of any project which listsmeteor-base
, but notunderscore
. Apps which do not require this package can safely remove it usingmeteor remove underscore
. PR #9596โก๏ธ Meteor's
promise
package has been updated to supportPromise.prototype.finally
. Issue 9639 PR #9663๐ฑ Assets made available via symlinks in the
public
andprivate
directories of an application are now copied into Meteor application bundles when usingmeteor build
. This means npm package assets that need to be made available publicly can now be symlinked from theirnode_modules
location, in thepublic
directory, and remain available in production bundles. Issue #7013 PR #9666๐ฆ The
facts
package has been split intofacts-base
andfacts-ui
. The originalfacts
package has been deprecated. PR #9629If the new pseudo tag
<meteor-bundled-css />
is used anywhere in the<head />
of an app, it will be replaced by thelink
to Meteor's bundled CSS. If the new tag isn't used, the bundle will be placed at the top of the<head />
section as before (for backwards compatibility). Feature #24 PR #9657
-
v1.7.0.5 Changes
August 16, 2018๐ฅ Breaking changes
N/A
Migration Steps
N/A
๐ Changes
- โก๏ธ Node has been updated to version 8.11.4, an important security release.
-
v1.7.0.4 Changes
August 07, 2018๐ฅ Breaking changes
N/A
Migration Steps
N/A
๐ Changes
๐ฆ The npm package
@babel/runtime
, which is depended on by most Meteor apps, introduced a breaking change in version7.0.0-beta.56
with the removal of the@babel/runtime/helpers/builtin
directory. While this change has clear benefits in the long term, in the short term it has been disruptive for Meteor 1.7.0.x applications that accidentally updated to the latest version of@babel/runtime
. Meteor 1.7.0.4 is a patch release that provides better warnings about this problem, and ensures newly created Meteor applications do not use7.0.0-beta.56
. PR #10134โฌ๏ธ The
npm
package has been upgraded to version 6.3.0, and our fork of itspacote
dependency has been rebased against version 8.1.6. Issue #9940โก๏ธ The
reify
npm package has been updated to version 0.16.4.
-
v1.7.0.3 Changes
June 13, 2018๐ฅ Breaking changes
N/A
Migration Steps
N/A
๐ Changes
- ๐ Fixed Issue #9991, introduced in Meteor 1.7.0.2 by PR #9977.
-
v1.7.0.2 Changes
June 13, 2018๐ฅ Breaking changes
N/A
Migration Steps
N/A
๐ Changes
โก๏ธ Node has been updated to version 8.11.3, an important security release.
โก๏ธ The
meteor-babel
npm package has been updated to version 7.0.0-beta.51.Meteor apps created with
meteor create
ormeteor create --minimal
will now have a directory calledtests/
rather thantest/
, so that test code will not be eagerly loaded if you decide to remove themeteor.mainModule
configuration frompackage.json
, thanks to PR #9977 by @robfallows. Issue #9961
-
v1.7.0.1 Changes
May 29, 2018๐ฅ Breaking changes
- The
aggregate
method of raw Mongo collections now returns anAggregationCursor
rather than returning the aggregation result directly. To obtain an array of aggregation results, you will need to call the.toArray()
method of the cursor: ```js // With MongoDB 2.x, callback style: rawCollection.aggregate( pipeline, (error, results) => {...} );
// With MongoDB 2.x, wrapAsync style: const results = Meteor.wrapAsync( rawCollection.aggregate, rawCollection )(pipeline);
// With MongoDB 3.x, callback style: rawCollection.aggregate( pipeline, (error, aggregationCursor) => { ... const results = aggregationCursor.toArray(); ... } );
// With MongoDB 3.x, wrapAsync style: const results = Meteor.wrapAsync( rawCollection.aggregate, rawCollection )(pipeline).toArray();
[Issue #9936](https://github.com/meteor/meteor/issues/9936) ### Migration Steps * โก๏ธ Update `@babel/runtime` (as well as other Babel-related packages) and `meteor-node-stubs` to their latest versions: ```sh meteor npm install @babel/runtime@latest meteor-node-stubs@latest
๐ Changes
โช Reverted an optimization introduced in Meteor 1.7 to stop scanning
node_modules
for files that might be of interest to compiler plugins, since the intended workarounds (creating symlinks) did not satisfy all existing use cases. We will revisit this optimization in Meteor 1.8. mozfet/meteor-autoform-materialize#43โก๏ธ After updating to Meteor 1.7 or 1.7.0.1, you should update the
@babel/runtime
npm package (as well as other Babel-related packages) to their latest versions, along with themeteor-node-stubs
package, by running the following command:meteor npm install @babel/runtime@latest meteor-node-stubs@latest
- The
-
v1.6.1 Changes
January 19, 2018๐ฅ Breaking changes
- ๐ง Meteor's Node Mongo driver is now configured with the
ignoreUndefined
connection option set totrue
, to make sure fields withundefined
values are not first converted tonull
, when inserted/updated.undefined
values are now removed from all Mongo queries and insert/update documents.
This is a potentially breaking change if you are upgrading an existing app from an earlier version of Meteor.
For example:
// return data pertaining to the current user db.privateUserData.find({ userId: currentUser._id // undefined });
Assuming there are no documents in the
privateUserData
collection withuserId: null
, in Meteor versions prior to 1.6.1 this query will return zero documents. From Meteor 1.6.1 onwards, this query will now return every document in the collection. It is highly recommend you review all your existing queries to ensure that any potential usage ofundefined
in query objects won't lead to problems.Migration Steps
N/A
๐ Changes
โก๏ธ Node has been updated to version 8.9.4.
๐ฆ The
meteor-babel
npm package (along with its Babel-related dependencies) has been updated to version 7.0.0-beta.38, a major update from Babel 6. Thanks to the strong abstraction of themeteor-babel
package, the most noticeable consequence of the Babel 7 upgrade is that thebabel-runtime
npm package has been replaced by@babel/runtime
, which can be installed by runningmeteor npm install @babel/runtime
in your application directory. There's a good chance that the old
babel-runtime
package can be removed from yourpackage.json
dependencies, though there's no harm in leaving it there. Please see this blog post for general information about updating to Babel 7 (note especially any changes to plugins you've been using in any.babelrc
files). PR #9440Because
[email protected]
is a major version bump for a core package, any package that explicitly depends onbabel-compiler
withapi.use
orapi.imply
will need to be updated and republished in order to remain compatible with Meteor 1.6.1. One notable example is thepracticalmeteor:mocha
package. If you have been using this test-driver package, we strongly recommend switching tometeortesting:mocha
instead. If you are the author of a package that depends onbabel-compiler
, we recommend publishing your updated version using a new major or minor version, so that you can continue releasing patch updates compatible with older versions of Meteor, if necessary.๐ง Meteor's Node Mongo driver is now configured with the
ignoreUndefined
connection option set totrue
, to make sure fields withundefined
values are not first converted tonull
, when inserted/updated.undefined
values are now removed from all Mongo queries and insert/update documents. Issue #6051 PR #9444๐ฆ The
server-render
package now supports passing aStream
object toServerSink
methods that previously expected a string, which enables streaming server-side rendering with React 16:import React from "react"; import { renderToNodeStream } from "react-dom/server"; import { onPageLoad } from "meteor/server-render"; import App from "/imports/Server.js";
onPageLoad(sink => { sink.renderIntoElementById("app", renderToNodeStream( )); });
[PR #9343](https://github.com/meteor/meteor/pull/9343) * ๐ฆ The [`cordova-lib`](https://github.com/apache/cordova-cli) package has been updated to version 7.1.0, [`cordova-android`](https://github.com/apache/cordova-android/) has been updated to version 6.4.0 (plus one additional [commit](https://github.com/meteor/cordova-android/commit/317db7df0f7a054444197bc6d28453cf4ab23280)), and [`cordova-ios`](https://github.com/apache/cordova-ios/) has been updated to version 4.5.4. The cordova plugins `cordova-plugin-console`, `cordova-plugin-device-motion`, and `cordova-plugin-device-orientation` have been [deprecated](https://cordova.apache.org/news/2017/09/22/plugins-release.html) and will likely be removed in a future Meteor release. [Feature Request #196](https://github.com/meteor/meteor-feature-requests/issues/196) [PR #9213](https://github.com/meteor/meteor/pull/9213) [Issue #9447](https://github.com/meteor/meteor/issues/9447) [PR #9448](https://github.com/meteor/meteor/pull/9448) * ๐ The previously-served `/manifest.json` application metadata file is now served from `/__browser/manifest.json` for web browsers, to avoid confusion with other kinds of `manifest.json` files. Cordova clients will continue to load the manifest file from `/__cordova/manifest.json`, as before. [Issue #6674](https://github.com/meteor/meteor/issues/6674) [PR #9424](https://github.com/meteor/meteor/pull/9424) * The bundled version of MongoDB used by `meteor run` in development on 64-bit architectures has been updated to 3.4.10. 32-bit architectures will continue to use MongoDB 3.2.x versions since MongoDB is no longer producing 32-bit versions of MongoDB for newer release tracks. [PR #9396](https://github.com/meteor/meteor/pull/9396) * โก๏ธ Meteor's internal `minifier-css` package has been updated to use `postcss` for CSS parsing and minifying, instead of the abandoned `css-parse` and `css-stringify` packages. Changes made to the `CssTools` API exposed by the `minifier-css` package are mostly backwards compatible (the `standard-minifier-css` package that uses it didn't have to change for example), but now that we're using `postcss` the AST accepted and returned from certain functions is different. This could impact developers who are tying into Meteor's internal `minifier-css` package directly. The AST based function changes are: * `CssTools.parseCss` now returns a PostCSS [`Root`](http://api.postcss.org/Root.html) object. * `CssTools.stringifyCss` expects a PostCSS `Root` object as its first parameter. * `CssTools.mergeCssAsts` expects an array of PostCSS `Root` objects as its first parameter. * `CssTools.rewriteCssUrls` expects a PostCSS `Root` object as its first parameter. [PR #9263](https://github.com/meteor/meteor/pull/9263) * The `_` variable will once again remain bound to `underscore` (if installed) in `meteor shell`, fixing a regression introduced by Node 8. [PR #9406](https://github.com/meteor/meteor/pull/9406) * Dynamically `import()`ed modules will now be fetched from the application server using an HTTP POST request, rather than a WebSocket message. This strategy has all the benefits of the previous strategy, except that it does not require establishing a WebSocket connection before fetching dynamic modules, in exchange for slightly higher latency per request. [PR #9384](https://github.com/meteor/meteor/pull/9384) * To reduce the total number of HTTP requests for dynamic modules, rapid sequences of `import()` calls within the same tick of the event loop will now be automatically batched into a single HTTP request. In other words, the following code will result in only one HTTP request: ```js const [ React, ReactDOM ] = await Promise.all([ import("react"), import("react-dom") ]);
Thanks to a feature request and pull request from @CaptainN, all available dynamic modules will be automatically prefetched after page load and permanently cached in IndexedDB when the
appcache
package is in use, ensuring that dynamicimport()
will work for offline apps. Although the HTML5 Application Cache was deliberately not used for this prefetching, the new behavior matches the spirit/intention of theappcache
package. Feature Request #236 PR #9482 PR #9434The
es5-shim
library is no longer included in the initial JavaScript bundle, but is instead injected using a<script>
tag in older browsers that may be missing full support for ECMAScript 5. For the vast majority of modern browsers that do not needes5-shim
, this change will reduce the bundle size by about 10KB (minified, pre-gzip). For testing purposes, the<script>
tag injection can be triggered in any browser by appending?force_es5_shim=1
to the application URL. PR #9360โ The
Tinytest.addAsync
API now accepts test functions that returnPromise
objects, making theonComplete
callback unnecessary:Tinytest.addAsync("some async stuff", async function (test) { test.equal(shouldReturnFoo(), "foo"); const bar = await shouldReturnBarAsync(); test.equal(bar, "bar"); });
Line number comments are no longer added to bundled JavaScript files on the client or the server. Several years ago, before all major browsers supported source maps, we felt it was important to provide line number information in generated files using end-of-line comments like
some.code(1234); // 123 more.code(5, 6); // 124
Adding all these comments was always slower than leaving the code unmodified, but recently the comments have begun interacting badly with certain newer ECMAScript syntax, such as multi-line template strings. Since source maps are well supported in most browsers that developers are likely to be using for development, and the line number comments are now causing substantive problems beyond the performance cost, we concluded it was time to stop using them. PR #9323 Issue #9160
๐ป Since Meteor 1.3, Meteor has supported string-valued
"browser"
fields inpackage.json
files, to enable alternate entry points for packages in client JavaScript bundles. In Meteor 1.6.1, we are expanding support to include object-valued"browser"
fields, according to this unofficial and woefully incomplete (but widely-implemented) "spec document." We are only supporting the "relative style" of browser replacements, however, and not the "package style" (as detailed in this comment), because supporting the package style would have imposed an unacceptable runtime cost on all imports (not just those overridden by a"browser"
field). PR #9311 Issue #6890๐ฆ The
Boilerplate#toHTML
method from theboilerplate-generator
package has been deprecated in favor oftoHTMLAsync
(which returns aPromise
that resolves to a string of HTML) ortoHTMLStream
(which returns aStream
of HTML). Although direct usage oftoHTML
is unlikely, please update any code that calls this method if you see deprecation warnings in development. Issue #9521.โฌ๏ธ The
npm
package has been upgraded to version 5.6.0, and our fork of itspacote
dependency has been rebased against version 7.0.2.โก๏ธ The
reify
npm package has been updated to version 0.13.7.โก๏ธ The
minifier-js
package has been updated to useuglify-es
3.2.2.๐ฆ The
request
npm package used by both thehttp
package and themeteor
command-line tool has been upgraded to version 2.83.0.โก๏ธ The
kexec
npm package has been updated to version 3.0.0.โก๏ธ The
moment
npm package has been updated to version 2.20.1.โก๏ธ The
rimraf
npm package has been updated to version 2.6.2.โก๏ธ The
glob
npm package has been updated to version 7.1.2.โก๏ธ The
ignore
npm package has been updated to version 3.3.7.โก๏ธ The
escope
npm package has been updated to version 3.6.0.โก๏ธ The
split2
npm package has been updated to version 2.2.0.โก๏ธ The
multipipe
npm package has been updated to version 2.0.1.โก๏ธ The
pathwatcher
npm package has been updated to version 7.1.1.โก๏ธ The
lru-cache
npm package has been updated to version 4.1.1.๐ The deprecated
Meteor.http
object has been removed. If your application is still usingMeteor.http
, you should now useHTTP
instead:import { HTTP } from "meteor/http"; HTTP.call("GET", url, ...);
๐ The deprecated
Meteor.uuid
function has been removed. If your application is still usingMeteor.uuid
, you should runmeteor npm install uuid
to install the widely used
uuid
package from npm. Example usage:import uuid from "uuid"; console.log(uuid());
๐ฒ The log-suppressing flags on errors in
ddp-client
andddp-server
have been changed fromexpected
to_expectedByTest
in order to avoid inadvertently silencing errors in production. Issue #6912 PR #9515โก๏ธ Provide basic support for iPhone X status bar and launch screens, which includes updates to
[email protected]
and[email protected]
. Issue #9041 PR #9375๐ Fixed an issue preventing the installation of scoped Cordova packages. For example,
meteor add cordova:@somescope/[email protected]
will now work properly. Issue #7336 PR #9334
โก๏ธ iOS icons and launch screens have been updated to support iOS 11 Issue #9196 PR #9198
Enables passing
false
tocursor.count()
on the client to prevent skip and limit from having an effect on the result. Issue #1201 PR #9205An
onExternalLogin
hook has been added to the accounts system, to allow the customization of OAuth user profile updates. PR #9042๐
Accounts.config
now supports abcryptRounds
option that overrides the default 10 rounds currently used to secure passwords. PR #9044Developers running Meteor from an interactive shell within Emacs should notice a substantial performance improvement thanks to automatic disabling of the progress spinner, which otherwise reacts slowly. PR #9341
Npm.depends
can now specify anyhttp
orhttps
URL. Issue #9236 PR #9237Byte order marks included in
--settings
files will no longer crash the Meteor Tool. Issue #5180 PR #9459๐ The
accounts-ui-unstyled
package has been updated to use<form />
and<button />
tags with its login/signup form, instead of<div />
's. This change helps browser's notice login/signup requests, allowing them to trigger their "remember your login/password" functionality.
Note: If your application is styling the login/signup form using a CSS path that includes the replaced
div
elements (e.g.div.login-form { ...
ordiv.login-button { ...
), your styles will break. You can either update your CSS to useform.
/button.
or adjust your CSS specificity by styling onclass
/id
attributes only.๐ฆ The
stylus
package has been deprecated and will no longer be supported/maintained. PR #9445๐ Support for the
meteor admin get-machine
command has been removed, and the build farm has been discontinued. Ever since Meteor 1.4, packages with binary dependencies have been automatically (re)compiled when they are installed in an application, assuming the target machine has a basic compiler toolchain. To see the requirements for this compilation step, consult the platform requirements fornode-gyp
.Client side
Accounts.onLogin
callbacks now receive a login details object, with the attempted login type (e.g.{ type: password }
after a successful password based login,{ type: resume }
after a DDP reconnect, etc.). Issue #5127 PR #9512
- ๐ง Meteor's Node Mongo driver is now configured with the
-
v1.6.1.4 Changes
August 16, 2018๐ฅ Breaking changes
N/A
Migration Steps
N/A
๐ Changes
- โก๏ธ Node has been updated to version 8.11.4, an important security release.
-
v1.6.1.3 Changes
June 16, 2018๐ฅ Breaking changes
N/A
Migration Steps
N/A
๐ Changes
- โก๏ธ Node has been updated to version 8.11.3, an important security release.