Import by alias and forget about maintaining relative paths.
import-alias allows you to add nicknames to files that you can use in import statements. This means you can forget about figuring out long relative directories and, even better, you can rearrange files and have the import statements rewritten automatically.
TODO: publish npm module
npm i -g import-alias
Until the npm package is published, install the source and link.
git clone [email protected]:classflow/import-alias.git
cd import-alias
npm i
npm link
Define unique aliases by adding @alias
comments to files. Most characters are
supported.
// @alias Widget
// @alias forms/Slim
// @alias services/ajax
// @alias foo-mister_crazy123!!+
Import aliased files with @{alias}
.
import Widget from '@Widget';
import Slim from '@forms/Slim';
import * as ajax from '@services/ajax';
import crazy from '@foo-mister_crazy123!!+';
Transform the import statements at any time by running import-alias
in the
root directory. The alias will be replaced with a relative path and a marker
appended to the line for future transformations.
import-alias
rewritten source
import Widget from './shared/components/Widget'; // @Widget
import Slim from './shared/components/forms/Slim'; // @forms/Slim
import * as ajax from '../services/transport/ajax'; // @services/ajax
import crazy from '../crazy/nicknamed/module'; // @foo-mister_crazy123!!+
You can also use import-alias from other code.
import { transform, ignore } from 'import-alias';
ignore(['libraries', 'min', 'build']);
transform('path/to/source').then(() => {
console.log('Life is easy.');
});
The current version finds all js, jsx, and es6 files recursively and ignores the directories node_modules, .git, lib, frameworks, and bower_components. These options will be made configurable in a future version. View the [change log] changelog for details.
kickstarted by npm-boom