Files
asciidisco.com/build/node_modules/source-map-concat/readme.md
2023-08-01 13:49:46 +02:00

107 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Overview [![Build Status](https://travis-ci.org/lydell/source-map-concat.svg?branch=master)](https://travis-ci.org/lydell/source-map-concat)
========
Concatenate files with source maps.
```js
var fs = require("fs")
var path = require("path")
var concat = require("source-map-concat")
var resolveSourceMapSync = require("source-map-resolve").resolveSourceMapSync
var createDummySourceMap = require("source-map-dummy")
var jsFiles = ["foo.js", "subdir/bar.js", "../baz.js"]
jsFiles = jsFiles.map(function(file) {
return {
source: file,
code: fs.readFileSync(file).toString()
}
})
jsFiles.forEach(function(file) {
var previousMap = resolveSourceMapSync(file.code, file.source, fs.readFileSync)
if (previousMap) {
file.map = previousMap.map
file.sourcesRelativeTo = previousMap.sourcesRelativeTo
} else {
file.map = createDummySourceMap(file.code, {source: file.source, type: "js"})
}
})
function wrap(node, file) {
node.prepend("void function(){\n// File: " + file.source + "\n")
node.add("}();")
}
var output = "subdir/bundle.js"
var concatenated = concat(jsFiles, {
delimiter: "\n",
process: wrap,
mapPath: output + ".map"
})
concatenated.prepend("/* Bruce Banner */\n")
concatenated.add("\n/* Footer */")
var result = concatenated.toStringWithSourceMap({
file: path.basename(output)
})
fs.writeFileSync(output, result.code)
fs.writeFileSync(output + ".map", result.map.toString())
```
Installation
============
`npm install source-map-concat`
```js
var concat = require("source-map-concat")
```
Usage
=====
### `concat(files, options)` ###
`files` is an array of objects with the following properties:
- `code`: The contents of the file, as a string.
- `map`: The source map of the file, if any, as an object, a string or anything
with a `.toJSON()` method (such as a [`SourceMapGenerator`]). It could be
taken straight from a compiler, be resolved using [source-map-resolve] or
created using [source-map-dummy].
- `sourcesRelativeTo`: A path that `file.map.sources` are relative to. Defaults
to `.`.
`options`:
- `delimiter`: A string to insert between each file.
- `process(node, file, index)`: A function to call on each file in `files`.
`node` is a [`SourceNode`]. You could use this to wrap JavaScript files in
IIFEs, for example.
- `mapPath`: The path to where you intend to write the source map of the
produced concatenated file. Defaults to `.`.
The files in `files` will be concatenated into a [`SourceNode`] which is
returned. You may then modify this source node if you wish (`node.add(...)` for
example). When youre done, call `node.toStringWithSourceMap()`, which returns
an object with a `code` property containing the concatenated code, and a `map`
property containing the source map.
[source-map-resolve]: https://github.com/lydell/source-map-resolve
[source-map-dummy]: https://github.com/lydell/source-map-dummy
[`SourceNode`]: https://github.com/mozilla/source-map#sourcenode
[`SourceMapGenerator`]: https://github.com/mozilla/source-map#sourcemapgenerator
License
=======
[The X11 (“MIT”) License](LICENSE).