A JS codemod to sort imports
Built on top of facebook/jscodeshift
This will transform a JS file, sorting and organising its imports (ES2015/ES6).
Example:
import Main from 'aaaa';
import {ZMain} from 'aaaa';
import First from 'zzz';
import {Third} from 'zzz';
import {Second} from 'zzz';
import * as someDefault from 'bbb';
import {a as b} from 'packageModule';
import SomeClass from './MyModule';
import AnotherClass from '../../Module1';
import * as util from 'util';
Becomes:
import * as util from 'util';
import Main, {ZMain} from 'aaaa';
import * as someDefault from 'bbb';
import First, {Second, Third} from 'zzz';
import {a as b} from 'packageModule';
import AnotherClass from '../../Module1';
import SomeClass from './MyModule';
Imports are separated by node, dependencies and devDependencies in package.json
, other, and relative imports.
To run, just run:
js-import-sort --path ./*
You can remove the the blank lines between imports by passing --no-blank-lines
to the command.
js-import-sort
supports 3 of the debugging tools from jscodesift, dry
, print
and verbose
which can be used in any combination
use --dry
and --print
to view the results of the changes before they are applied