JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 618
  • Score
    100M100P100Q90883F
  • License MIT

Resolve modules from any directory.

Package Exports

  • babel-resolver
  • babel-resolver/lib/findNodeModulesPath
  • babel-resolver/lib/pathExists
  • babel-resolver/lib/pathIsRelative

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (babel-resolver) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

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