Package Exports
- esnext
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (esnext) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
esnext 
Bring your JavaScript into the future.
Installation
$ yarn global add esnext
# or, with `npm`:
$ npm install -g esnext
Usage
After installing, run esnext -h
for comprehensive usage instructions.
Features
Functions
Translate some regular functions to arrow functions:
list.map(function(item) { return item.name; });
// ↑ becomes ↓
list.map(item => item.name);
Declarations
Convert var
declarations to let
or const
as appropriate:
var arr = [];
for (var i = 0; i < 5; i++) {
arr.push(i);
}
// ↑ becomes ↓
const arr = [];
for (let i = 0; i < 5; i++) {
arr.push(i);
}
Objects
Use shorthand syntax for various object constructs:
let person = {
first: first,
last: last,
fullName: function() {
return `${first} ${last}`;
}
};
// ↑ becomes ↓
let person = {
first,
last,
fullName() {
return `${first} ${last}`;
}
};
Strings
Convert string concatenation to string or template literals:
let name = 'Brian' + ' ' + 'Donovan';
let greeting = 'Hello, ' + name;
// ↑ becomes ↓
let name = 'Brian Donovan';
let greeting = `Hello, ${name}`;
Destructuring
Convert assignments and declarations to use object destructuring syntax:
let a = obj.a, b = obj.b;
a = obj2.a, b = obj2.b;
// ↑ becomes ↓
let { a, b } = obj;
({ a, b } = obj2);
Modules
Translate CommonJS modules into ES6 modules:
var readFile = require('fs').readFile;
const MagicString = require('magic-string');
let { ok, strictEqual: eq } = require('assert');
exports.doSomething = function() {
ok(1);
};
// ↑ becomes ↓
import { readFile } from 'fs';
import MagicString from 'magic-string';
import { ok, strictEqual as eq } from 'assert';
export function doSomething() {
ok(1);
}
Options
{
'declarations.block-scope': {
/**
* Set this to `true` to only turn `var` into `let`, never `const`.
*/
disableConst: boolean
}
}