Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/tootallnate/babel-plugin-transform-dirname-filename

Babel plugin that rewrites `__dirname` and `__filename` to static values
https://github.com/tootallnate/babel-plugin-transform-dirname-filename

Last synced: 4 days ago
JSON representation

Babel plugin that rewrites `__dirname` and `__filename` to static values

Awesome Lists containing this project

README

        

# babel-plugin-transform-dirname-filename

Babel plugin that rewrites `__dirname` and `__filename` to static values.

## Example

Source file `t.js`:

```javascript
console.log(__dirname);
console.log(__filename);
```

### Execute normally

```sh
$ node t.js
/path/to
/path/to/t.js
```

### Before

```sh
$ babel --out-file build/t.js t.js

$ node build/t.js
/path/to/build
/path/to/build/t.js
```

Notice how the `build` directory is part of the paths, which is _not_ what we
want.

### After

```sh
$ babel --out-file build/t.js --plugins transform-dirname-filename t.js

$ node build/t.js
/path/to
/path/to/t.js
```

So even though the generated file is a `build/t.js`, the `__dirname` and
`__filename` values will still reference the source file!

## Installation

```sh
$ npm install babel-plugin-transform-dirname-filename --save-dev
```

## Usage

### Via `.babelrc` (Recommended)

**.babelrc**

```json
{
"plugins": ["transform-dirname-filename"]
}
```

### Via CLI

```sh
$ babel --plugins transform-dirname-filename script.js
```

### Via Node API

```javascript
require("babel-core").transform("code", {
plugins: ["transform-dirname-filename"]
});
```