/paths.macro

Babel plugin that returns an object containing paths like __dirname and __filename as static values

Primary LanguageJavaScript

Babel paths.macro

A babel macro that allows you to "import" the location of the source-file.

The supported paths you can import:

name example
npmRoot /Users/you/project
gitRoot /Users/you/project
wd /Users/you/project
fileAbsolute /Users/you/project/src/input.js
file input.js
extention .js
filename input
baseAbsolute /Users/you/project/src/
base /src/

The default import is equal to base.

Example

Source file input.js:

import base, { filename } from 'babel-plugin-module-paths/paths.macro';

console.log(base, filename);

alert(filename, base);

function usePathsForSomething() {
  return [filename, base];
};

Output:

console.log("/src/", "input");

alert("input", "/src/");

function usePathsForSomething() {
  return ["input", "/src/"];
};

Config

Install:

yarn add babel-plugin-module-paths

If you don't have babel-macros already you must also install that:

yarn add babel-plugin-macros

Ensure you have babel-plugin-macros in your babel config (.babelrc).

{
  "plugins": ["macros"]
}