
























Today the Ember project is releasing version 2.16.0 of Ember.js, Ember Data, and Ember CLI.
After six weeks as a stable release, Ember.js 2.16 will be promoted to long term support, under which it will receive bugfixes for the next 6 releases and security fixes for the next 10 release.
This release also kicks off the 2.17 beta cycle for all sub-projects. We encourage our community (especially addon authors) to help test these beta builds and report any bugs before they are published as a stable release in six weeks' time.
Ember.js is the core framework for building ambitious web applications.
Ember.js 2.16 continues to improve the framework with minor bug fixes. Additionally, it introduces a major change in conventional usage. As of Ember 2.16, newly generated Ember applications will use the JavaScript modules API described in detail below.
No APIs are deprecated as part of these changes. Although we encourage
applications to upgrade to the new modules API, we plan to wait until
the module API is proven and more addons across the community are upgraded
before introducing a deprecation for the Ember namespace object.
In Ember.js 2.16 the recommended way to access framework code in Ember applications is via the JavaScript modules API described in RFC #176. For example this basic component definition in 2.15:
import Ember from 'ember';
export default Ember.Component.extend({
session: Ember.inject.service(),
title: 'The Curious Case'
});
Would in 2.16 conventions be written as:
import Component from '@ember/component';
import { inject as service } from '@ember/service';
export default Component.extend({
session: service(),
title: 'The Curious Case'
});
JavaScript modules make the framework easier to document, make the distinction between public and private API much easier to maintain, and provide opportunities for performance work such as tree-shaking.
Adopting a new convention for importing the framework is a big task that impacts application code, documentation, generators/blueprints, and more. We've made the following changes to prepare for the shift in usage:
In rolling out the changes to Ember's API documentation we uncovered a few bugs in the website itself. We're tracking fixes in emberjs/website#3024: Directly loaded URLs for /api/ fail to load and ember-learn/ember-api-docs#355: Get the Guides links to work with post 2.16 package restructure.
Existing applications can move to adopt the new import style immediately. To update an application:
'ember' package to
the new modules, updating files in place.npm install ember-modules-codemod -g
cd my-ember-app
ember-modules-codemod
You're using the new import API!
Many applications use the ember-cli-shims package. This provides an earlier design of Ember's module API. This package continues to work and will be provided by default in new Ember applications, however it will be removed in a future version of Ember CLI. Migrating to the new modules API is a good time to remove any usage of these legacy modules.
The eslint-plugin-ember package provides a linting rule that can remove usage of the legacy modules provided by ember-cli-shims. To run this follow these steps:
.eslintrc.js appropriately.
For more detailed instructions, see this excellent blog post:
How To Use Ember’s New Module Import Syntax Today./node_modules/.bin/eslint --fix to convert ember-cli-shims module usage to plain 'ember'
imports.eslint --fix, you will need to run it a second time. This will convert the
'ember' imports to their modern module API equivalents.Your application no longer contains any usage of the legacy modules.
To provide addon users the best experience, we suggest you take the following steps as an addon maintainer (or contributor!):
addon/ and test/ directories.app/ and test-support/ directories (both part of the dependent
app's build) contain only re-exports from the addon/ directory. The files
in app/ should avoid importing any Ember APIs in any manner. In this
way an addon will be decoupled from the consuming application's build and runtime
Ember API support.Taking these steps will ensure your addon's users have a smooth path from previous versions of Ember to 2.16, and beyond.
If you have questions please join us in #-ember-cli on the Ember.js
Community Slack.
One new deprecation is introduced in Ember.js 2.16:
content
that aliases the model property. Relying on this legacy behavior is
deprecated and will be unsupported in Ember 2.17. See the
deprecation guide
for more details.For more details on changes in Ember.js 2.16, please review the Ember.js 2.16.0 release page.
Ember.js 2.17 will contain no new features. Instead it will primarily include bug fixes, performance, and stability work.
For more details on the upcoming changes in Ember.js 2.17, please review the Ember.js 2.17.0-beta.1 release page.
Ember Data is the official data persistence library for Ember.js applications.
Ember Data 2.16.2 is the latest stable release at this time.
Ember Data 2.16 is a bugfix release. It contains no new features but it does have several bug fixes for build warnings, header parsing and outdated dependencies.
There are no new deprecations introduced in Ember Data 2.16.
For more details on changes in Ember Data 2.16, please review the Ember Data 2.16.0 release page. Again, 2.16.2 was published shortly after 2.16.0 with minor bug fixes.
Due to a late start in the Ember Data 2.16 beta cycle the Ember Data 2.17.0-beta.1 release is currently the same code as 2.16.0. The beta releases will continue to receive beta bug fixes and it is expected to diverge from Ember Data 2.16.0 by the time 2.17.0 is released in 6 weeks.
There are no planned deprecations introduced in Ember Data 2.17.
For more details on the upcoming changes in Ember Data 2.17.0-beta.1, please review the Ember Data 2.17.0-beta.1 release page.
Ember CLI is the command line interface for managing and packaging Ember.js applications.
The latest version of Ember CLI is 2.16.1, as a small bug fix went out shortly after release.
You may upgrade Ember CLI separately from Ember.js and Ember Data! To upgrade
your projects using yarn run:
yarn upgrade ember-cli
To upgrade your projects using npm run:
npm install --save-dev ember-cli
After running the
upgrade command run ember init inside of the project directory to apply the
blueprint changes. You can preview those changes for applications
and addons.
Ember CLI 2.16.0 upgrades the application build pipeline to use uglify-es. uglify-es introduces support for minification of modern JavaScript features. With this change, Ember CLI can now generate minified production builds of non-transpiled JavaScript code.
Ember CLI 2.16.0 adds support for addons to transform vendor resources via
importTransforms, an implementation of Ember CLI RFC 108.
"Vendor resource" describes any file included via app.import. This is an
advanced feature for addon authors, and is particularly useful for
FastBoot. In a future release FastBoot-aware
addons will be provided a declarative API for conditionally importing code in
Node.js or browser environments. See
ember-fastboot/ember-cli-fastboot#470 for more
details.
Thanks to @kratiahuja for proposing and implementing this feature.
Other changes in 2.16.0 include:
ember install now supports scoped npm packages, for example ember install @cardstack/git.
See ember-cli/ember-cli#7109 for more details.No new deprecations are added in Ember CLI 2.16.
For more details on the changes in Ember CLI 2.16 and detailed upgrade instructions, please review the Ember CLI 2.16.0 release page. Please note that 2.16.1 was published shortly after 2.16.0 and is the lastest release.
Ember CLI 2.17 introduces no major functionality changes or deprecations.
For more details on the changes in Ember CLI 2.17.0-beta.1 and detailed upgrade instructions, please review the Ember CLI 2.17.0-beta.1 release page.
As a community-driven open-source project with an ambitious scope, each of these releases serve as a reminder that the Ember project would not have been possible without your continued support. Thanks to all our contributors for their efforts.
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。