babel-resolver

v1.1.0
Resolve modules from any directory.
babel resolve local module source resolveModuleSource NODE_PATH import

Babel Resolver NPM version Build status Coverage status

Resolve modules from any directory.

import User from '../../models/User';

Becomes:

import User from 'models/User';

Usage

In app/index.js:

require('babel-register')({
  presets: ['es2015'], // required for 'import'
  resolveModuleSource: require('babel-resolver')(__dirname)
});

require('./app');

In app/app.js:

import User from 'models/User';
// => resolves: "app/models/User.js"

This example uses Babel 6 and babel-register.

If you wish to define options in .babelrc, use the Babel Resolver Plugin instead.

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-register')({
  presets: ['es2015'],
  resolveModuleSource: require('babel-resolver')(localModulesDir, anotherDirToCheck)
});
require('./app');

In app/app.js:

import User from 'models/User';
// => resolves: "app/models/User.js"

import somethingInLib from 'somethingInLib';
// => resolves: "app/lib/somethingInLib.js"

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 more explicit and lets you avoid mucking around with environment variables.

License

MIT

npm i babel-resolver

Metadata

  • MIT
  • Whatever
  • Jeff Hanson
  • released 9/13/2016

Downloads

Maintainers