A collection of codemods that allow you to transform your JavaScript code from ES5 to ES6 using jscodeshift.
npm install -g jscodeshiftnpm install 5to6-codemodjscodeshift -t node_modules/5to6-codemod/transforms/[transform].js [files]- Review changes via
git diff. Keep what you want, throw it out if you don't. Magic!
When executing codemods, you can configure options like so:
jscodeshift -t node_modules/5to6-codemod/transforms/[transform].js [files] --key=value
Our transforms will automatically distinguish and pass through Recast config keys via jscodeshift. Official documentation for Recast's configuration can be found here. We currently support the following Recast keys:
esprimainputSourceMaplineTerminatorquoterangereuseWhitespacesourceFileNamesourceMapNamesourceRoottabWidthtoleranttrailingCommauseTabswrapColumn
amd- Transforms AMD style modules to ES6import/exportcjs- Transforms CommonJS stylerequire()calls to ES6importstatements- This transformation accepts the following option flags:
hoist: Enables hoisting require statements to the top
- This transformation accepts the following option flags:
no-strict- Removes "use strict" statementsexports- Move CommonJS stylemodule.exportsstatements to ES6exportstatementsnamed-export-generation- Adds named exports corresponding to default export object keys. Only valid for ES6 modules exporting an object as the default export.let- Replace allvarcalls to useletsimple-arrow- Replace all function expressions with a body of a sole return statement into arrow functions
- Can't automagically figure out when you want to use
import * as varName. - End-of-line comments also missing in many situations
simple-arrowloses comments in the function expression body