Import ES6 modules from npm, bower or anywhere else in your Ember app.
Requirements
Why
Installation
Usage
I have a complex dependency
app.import
and custom transformations
require [email protected]+
.
Ember currently lacks official support for importing and transpiling external ES6 modules.
[email protected]
introduced the ability to import files from node_modules
. [email protected]
then gave us the ability to register and apply custom importTransforms
to our imports. Currently, anything imported using app.import
bypasses the Babel pipeline and is inserted into the final vendor.js
verbatim. If your desired dependency is a ✨shiny new ES6 module, the import will break your app. This addon leverages both concepts to pass your dependency through ember-cli-babel
.
ember install ember-cli-es6-transform
Define the transformation when importing the ES6 module in your ember-cli-build.js
. The syntax is the same as the built-in amd
transform.
Remember that app.import
only works one file at a time!
Options:
as
– (required) specify the module name.
// Importing spin.js as spin.js
app.import('node_modules/spin.js/spin.js', {
using: [
{ transformation: 'es6', as: 'spin.js' }
]
});
In your app, you can then import the module using the name you specified in as
.
import { Spinner } from 'spin.js';
If you want to import a complex, multi-file dependency, your best bet right now is to use broccoli-rollup
together with ember-cli-node-modules-to-vendor.
git clone <repository-url>
this repositorycd ember-cli-es6-transform
yarn install
yarn test