A collection of codemods that allow you to transform your JavaScript code from ES5 to ES6 using jscodeshift.
npm install -g jscodeshift
npm install 5to6-codemod
jscodeshift -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:
esprima
inputSourceMap
lineTerminator
quote
range
reuseWhitespace
sourceFileName
sourceMapName
sourceRoot
tabWidth
tolerant
trailingComma
useTabs
wrapColumn
amd
- Transforms AMD style modules to ES6import
/export
cjs
- Transforms CommonJS stylerequire()
calls to ES6import
statements- 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.exports
statements to ES6export
statementsnamed-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 allvar
calls to uselet
simple-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-arrow
loses comments in the function expression body