1.8.0 • Published 7 years ago
5to6-codemod v1.8.0
5to6-codemod
A collection of codemods that allow you to transform your JavaScript code from ES5 to ES6 using jscodeshift.
Usage
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!
Option flags
When executing codemods, you can configure options like so:
jscodeshift -t node_modules/5to6-codemod/transforms/[transform].js [files] --key=value
Recast options
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
Transforms
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 topno-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
Known issues
- 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