Babel Resolver Plugin
![Build status](https://travis-ci.org/jshanson7/babel-plugin-resolver.svg)
Resolve modules from any directory.
import User from '../../models/User';
Becomes:
import User from 'models/User';
Usage
npm i babel-plugin-resolver --save
rm -rf ~/.babel.json
In .babelrc:
{
"presets": ["es2015"],
"plugins": [["resolver", { "resolveDirs": ["src"] }]]
}
Given the directory structure:
app/
.babelrc
src/
models/
User.js
controllers/
User.js
In app/controllers/User.js:
import UserModel from 'models/User';
This example uses Babel 6.
Note: Run rm -rf ~/.babel.json
if you're seeing errors.
Note2: This plugin is only called when you use import
, not require
.
Resolving Multiple Directories
In .babelrc:
{
"presets": ["es2015"],
"plugins": [["resolver", { "resolveDirs": ["src", "src/lib"] }]]
}
Given the directory structure:
app/
.babelrc
src/
models/
User.js
controllers/
User.js
lib/
utils.js
In app/controllers/User.js:
import UserModel from 'models/User';
import utils from 'utils';
Installation
npm i babel-plugin-resolver --save
rm -rf ~/.babel.json
Why not just set NODE_PATH?
While setting NODE_PATH=app
is a perfectly valid solution, babel-plugin-resolver
is for those who:
- find environment variables annoying
- want to resolve modules from more than one directory
License
MIT