exorcist-stream

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

Usage no npm install needed!

<script type="module">
  import exorcistStream from 'https://cdn.skypack.dev/exorcist-stream';
</script>

README

exorcist build status

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

Works with both JavaScript and CSS input streams.

NOTE: forked from thlorenz/exorcist and PR#26 applied.

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

browserify()
  .require(require.resolve('./main'), { entry: true })
  .bundle({ debug: true })
  .pipe(exorcist(mapfile))
  .pipe(fs.createWriteStream(path.join(__dirname, 'bundle.js'), 'utf8'))

// or pipe to a stream instead.
// create a stream which will accept the source map
var strung = require('strung');
  , sourceMap = strung();

browserify()
  .require(require.resolve('./main'), { entry: true })
  .bundle({ debug: true })
  // you must supply the URL argument with a stream
  .pipe(exorcist(sourceMap, '/bundle.js.map'))
  .pipe(fs.createWriteStream(path.join(__dirname, 'bundle.js'), 'utf8'))

// get source map from the stream.
console.log(sourceMap.string);

command line example

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

Table of Contents generated with DocToc

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)

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(file, url, root, base) → {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 (the src is still piped through in this case, but no map file is written)
Parameters:
Name Type Argument Description
file String

full path to the map file to which to write the extracted source map

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)

Source:
Returns:

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

Type
TransformStream

generated with docme

Integration with other tools

License

MIT