109 lines
3.5 KiB
Markdown
109 lines
3.5 KiB
Markdown
Overview [](https://travis-ci.org/lydell/source-map-url)
|
||
========
|
||
|
||
[](https://ci.testling.com/lydell/source-map-url)
|
||
|
||
Tools for working with sourceMappingURL comments.
|
||
|
||
```js
|
||
var sourceMappingURL = require("source-map-url")
|
||
|
||
var code = [
|
||
"!function(){...}();",
|
||
"/*# sourceMappingURL=foo.js.map */"
|
||
].join("\n")
|
||
|
||
sourceMappingURL.get(code)
|
||
// foo.js.map
|
||
|
||
code = sourceMappingURL.set(code, "/other/file.js.map")
|
||
// !function(){...}();
|
||
// /*# sourceMappingURL=/other/file.js.map */
|
||
|
||
code = sourceMappingURL.insertBefore(code, "\n// License: MIT")
|
||
// !function(){...}();
|
||
// // License: MIT
|
||
// /*# sourceMappingURL=/other/file.js.map */
|
||
|
||
code = sourceMappingURL.remove(code)
|
||
// !function(){...}();
|
||
// // License: MIT
|
||
|
||
sourceMappingURL.get(code)
|
||
// null
|
||
```
|
||
|
||
|
||
Installation
|
||
============
|
||
|
||
- `npm install source-map-url`
|
||
- `bower install source-map-url`
|
||
- `component install lydell/source-map-url`
|
||
|
||
Works with CommonJS, AMD and browser globals, through UMD.
|
||
|
||
|
||
Usage
|
||
=====
|
||
|
||
### `sourceMappingURL.get(code)` ###
|
||
|
||
Returns the url of the sourceMappingURL comment in `code`. Returns `null` if
|
||
there is no such comment. Note that the url can be the empty string and that
|
||
both the empty string and `null` are falsy. Consider using `if (url === null)
|
||
{}` rather than `if (url) {}` if you need to tell those two cases apart.
|
||
|
||
### `sourceMappingURL.set(code, url [, commentSyntax])` ###
|
||
|
||
Updates the sourceMappingURL comment in `code` to use `url`. Creates such a
|
||
comment if there is none. Returns the updated `code`.
|
||
|
||
The `commentSyntax` argument is optional. It is an array. The first element of
|
||
it defines how a comment starts, while the second element defines how it ends.
|
||
The default value is `["/*", " */"]`. `/**/` comments were chosen as default in
|
||
favor of `//` comments, because ideally they work with both JavaScript and CSS.
|
||
This way, you don’t have to think about what type of code you’re working with.
|
||
However, Chrome sadly does not support `/**/` comments in JavaScript. So
|
||
currently, you need to use `.set(code, url, ["//"])` for JavaScript that needs
|
||
source map support in Chrome. A [bug] has been filed about this.
|
||
|
||
[bug]: http://code.google.com/p/chromium/issues/detail?id=341807
|
||
|
||
### `sourceMappingURL.remove(code)` ###
|
||
|
||
Removes the sourceMappingURL comment in `code`. Does nothing if there is no
|
||
such comment. Returns the updated `code`.
|
||
|
||
### `sourceMappingURL.insertBefore(code, string)` ###
|
||
|
||
Inserts `string` before the sourceMappingURL comment in `code`. Appends
|
||
`string` to `code` if there is no such comment.
|
||
|
||
Lets you append something to a file without worrying about breaking the
|
||
sourceMappingURL comment (which needs to be at the end of the file).
|
||
|
||
### `sourceMappingURL.regex` ###
|
||
|
||
The regex that is used to match sourceMappingURL comments. It matches both `//`
|
||
and `/**/` comments, thus supporting both JavaScript and CSS.
|
||
|
||
### `sourceMappingURL.SourceMappingURL(commentSyntax)` ###
|
||
|
||
Lets you create a new SourceMappingURL instance, using `commentSyntax` as
|
||
default comment syntax for the `set` method.
|
||
|
||
For example, if you mainly work with JavaScript code that needs to have source
|
||
map support in Chrome, you could use it like this:
|
||
|
||
```js
|
||
var SourceMappingURL = require("source-map-url").SourceMappingURL
|
||
var sourceMappingURL = new SourceMappingURL(["//"])
|
||
```
|
||
|
||
|
||
License
|
||
=======
|
||
|
||
[The X11 (“MIT”) License](LICENSE).
|