Upgrading Babel and ESLint to use React Advanced Language Features
by John Vincent
Posted on June 1, 2018
This article describes how to upgrade Babel and ESLint to allow React environment to support advanced language features, for example fat arrow class methods.
General
Fat arrow class methods.
handleClick = (evt) => {
...
}
Transform rest properties for object destructuring assignment and spread properties for object literals
Rest Properties
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
console.log(x); // 1
console.log(y); // 2
console.log(z); // { a: 3, b: 4 }
Spread Properties
let n = { x, y, ...z };
console.log(n); // { x: 1, y: 2, a: 3, b: 4 }
Upgrade
npm install babel-eslint --save-dev
npm i babel-plugin-transform-class-properties --save-dev
npm i babel-plugin-transform-object-rest-spread --save-dev
.eslintrc
"parser": "babel-eslint"
.babelrc
{
"presets": ["env", "react"],
"plugins": [
"transform-object-rest-spread",
"transform-class-properties"
]
}