Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/thlorenz/exorcist

Externalizes the source map found inside a stream to an external .js.map file
https://github.com/thlorenz/exorcist

Last synced: about 24 hours ago
JSON representation

Externalizes the source map found inside a stream to an external .js.map file

Awesome Lists containing this project

README

        

# exorcist [![build status](https://secure.travis-ci.org/thlorenz/exorcist.svg?branch=master)](http://travis-ci.org/thlorenz/exorcist)

become a patron

Externalizes the source map found inside a stream to an external `.map` file or stream.

Works with both JavaScript and CSS input streams.

```js
var browserify = require('browserify')
, path = require('path')
, fs = require('fs')
, exorcist = require('exorcist')
, mapfile = path.join(__dirname, 'bundle.js.map')

// from a file, to a file, and send source map to its own file
browserify({debug: true})
.require(require.resolve('./main'), { entry: true })
.bundle()
.pipe(exorcist(mapfile))
.pipe(fs.createWriteStream(path.join(__dirname, 'bundle.js'), 'utf8'))

// from a stream, to a stream, and send source map to a stream
browserify([readableSourceStream], browserifyOptions)
.bundle()
.pipe(exorcist(targetSourceMapStream, '/url/path/to/replace/source/comment/with/bundle.js'))
.pipe(writableTargetStream)
```

### command line example

```
browserify main.js --debug | exorcist bundle.js.map > bundle.js
```

**Table of Contents** *generated with [DocToc](http://doctoc.herokuapp.com/)*

- [Usage](#usage)
- [Installation](#installation)
- [API](#api)
- [Integration with other tools](#integration-with-other-tools)
- [License](#license)

## Usage

```
exorcist map_file [options]

Externalizes the source map of the file streamed in.

The source map is written as JSON to map_file, and the original file is streamed out with its
sourceMappingURL set to the path of map_file (or to the value of the --url option).

OPTIONS:

--base -b Base path for calculating relative source paths.
(default: use absolute paths)

--root -r Root URL for loading relative source paths.
Set as sourceRoot in the source map.
(default: '')

--url -u Full URL to source map.
Set as sourceMappingURL in the output stream.
(default: map_file)

--error-on-missing -e Abort with error if no map is found in the stream.
(default: warn but still pipe through source)

EXAMPLE:

Bundle main.js with browserify into bundle.js and externalize the map to bundle.js.map.

browserify main.js --debug | exorcist bundle.js.map > bundle.js
```

## Installation

npm install exorcist

## API









exorcist(input, url, root, base, errorOnMissing) → {TransformStream}





Externalizes the source map of the file streamed in.


The source map is written as JSON to file, and the original file is streamed out with its
sourceMappingURL set to the path of file (or to the value of url).


Events (in addition to stream events)




  • missing-map emitted if no map was found in the stream and errorOnMissing is falsey
    (the src is still piped through in this case, but no map file is written)



Parameters:

Name
Type
Argument
Description

input

String / Object

full path to the map file to which to write the extracted source map or a writable stream

url

String

<optional>

full URL to the map file, set as sourceMappingURL in the streaming output (default: file)

root

String

<optional>

root URL for loading relative source paths, set as sourceRoot in the source map (default: '')

base

String

<optional>

base path for calculating relative source paths (default: use absolute paths)

errorOnMissing

Boolean

<optional>

when truthy, causes 'error' to be emitted instead of 'missing-map' if no map was found in the stream (default: falsey)


Source:



Returns:


transform stream into which to pipe the code containing the source map





Type


TransformStream



*generated with [docme](https://github.com/thlorenz/docme)*

## Integration with other tools

- [using exorcist with gulp](https://github.com/thlorenz/exorcist/wiki/Recipes#gulp)

## License

MIT