babel-plugin-ember-modules-api-polyfill

WebJar for babel-plugin-ember-modules-api-polyfill

License

License

MIT
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

babel-plugin-ember-modules-api-polyfill
Last Version

Last Version

2.12.0
Release Date

Release Date

Type

Type

jar
Description

Description

babel-plugin-ember-modules-api-polyfill
WebJar for babel-plugin-ember-modules-api-polyfill
Project URL

Project URL

https://www.webjars.org
Source Code Management

Source Code Management

https://github.com/ember-cli/babel-plugin-ember-modules-api-polyfill

Download babel-plugin-ember-modules-api-polyfill

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/babel-plugin-ember-modules-api-polyfill/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>babel-plugin-ember-modules-api-polyfill</artifactId>
    <version>2.12.0</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/babel-plugin-ember-modules-api-polyfill/
implementation 'org.webjars.npm:babel-plugin-ember-modules-api-polyfill:2.12.0'
// https://jarcasting.com/artifacts/org.webjars.npm/babel-plugin-ember-modules-api-polyfill/
implementation ("org.webjars.npm:babel-plugin-ember-modules-api-polyfill:2.12.0")
'org.webjars.npm:babel-plugin-ember-modules-api-polyfill:jar:2.12.0'
<dependency org="org.webjars.npm" name="babel-plugin-ember-modules-api-polyfill" rev="2.12.0">
  <artifact name="babel-plugin-ember-modules-api-polyfill" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='babel-plugin-ember-modules-api-polyfill', version='2.12.0')
)
libraryDependencies += "org.webjars.npm" % "babel-plugin-ember-modules-api-polyfill" % "2.12.0"
[org.webjars.npm/babel-plugin-ember-modules-api-polyfill "2.12.0"]

Dependencies

compile (1)

Group / Artifact Type Version
org.webjars.npm : ember-rfc176-data jar [0.3.12,0.4)

Project Modules

There are no modules declared in this project.

babel-plugin-ember-modules-api-polyfill

This plugin transforms JavaScript modules API import statements back to the legacy "global" ember object syntax

Example

import { inject } from "@ember/service"

back to the legacy

const inject = Ember.inject.service

Installation

npm install --save babel-plugin-ember-modules-api-polyfill

Why

This plugin provides an API polyfill to allow ember addon authors to adopt the new JavaScript modules API whilst still maintaining backwards compatibility with older versions of Ember that do not support the new modules API.

The intention of this Babel plugin is to also allow for a transition period and allow applications to exist in a mixed state whilst transitioning from the old "global" ember object pattern, into the new modular pattern.

How

Using the ember-rfc176-data package, that contains the official mapping of old global object names to the new JS modules API import statements, addons that adopt the new API can be transpiled back to the legacy format if Ember-CLI detects that the host application ember version does not support the new modules API.

The plugin supports both default import Component from "@ember/component" and named import { inject } from "@ember/service" import statements, converting their syntax back to separate const variables within the source file. This transpilation is done at compile time by Ember CLI.

In order for ember addon developers to adopt this new API syntax, they must declare a dependency on ember-cli-babel:v6.6.0 or above in their package.json:

{
  "dependencies": {
    "ember-cli-babel": "^6.6.0"
  }
}
org.webjars.npm

ember-cli

Versions

Version
2.12.0