Babel Resolver
![Coverage status](https://coveralls.io/repos/jshanson7/babel-resolver/badge.svg?branch=master&service=github)
To configure this using .babelrc, use the Babel Resolver Plugin
Resolve modules from any directory.
import User from '../../models/User';
Becomes:
import User from 'models/User';
Usage
In app/index.js:
require('babel-core/register')({
presets: ['es2015'],
resolveModuleSource: require('babel-resolver')(__dirname)
});
require('./app');
In app/app.js:
import User from 'models/User';
This example uses Babel 6 and babel-core/register
.
Note: Run rm -rf ~/.babel.json
if you're seeing errors.
Note2: Babel's resolveModuleSource
is only called when you use import
, not require
.
Also, keep in mind that you must provide absolute directory paths to babel-resolver
.
Resolving Multiple Directories
In app/index.js:
var path = require('path');
var localModulesDir = __dirname;
var anotherDirToCheck = path.resolve(__dirname, 'lib');
require('babel-core/register')({
presets: ['es2015'],
resolveModuleSource: require('babel-resolver')(localModulesDir, anotherDirToCheck)
});
require('./app');
In app/app.js:
import User from 'models/User';
import somethingInLib from 'somethingInLib';
Installation
npm i babel-resolver --save
rm -rf ~/.babel.json
Why not just set NODE_PATH?
While setting NODE_PATH=app
is a perfectly valid solution, babel-resolver
is for those who:
- find environment variables annoying
- want to resolve modules from more than one directory
License
MIT