You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
2.5 KiB
Markdown
90 lines
2.5 KiB
Markdown
7 years ago
|
# browser-pack
|
||
|
|
||
|
pack node-style source files from a json stream into a browser bundle
|
||
|
|
||
|
[![browser support](http://ci.testling.com/substack/browser-pack.png)](http://ci.testling.com/substack/browser-pack)
|
||
|
|
||
|
[![build status](https://secure.travis-ci.org/substack/browser-pack.png)](http://travis-ci.org/substack/browser-pack)
|
||
|
|
||
|
# example
|
||
|
|
||
|
json input:
|
||
|
|
||
|
``` json
|
||
|
[
|
||
|
{
|
||
|
"id": "a1b5af78",
|
||
|
"source": "console.log(require('./foo')(5))",
|
||
|
"deps": { "./foo": "b8f69fa5" },
|
||
|
"entry": true
|
||
|
},
|
||
|
{
|
||
|
"id": "b8f69fa5",
|
||
|
"source": "module.exports = function (n) { return n * 111 }",
|
||
|
"deps": {}
|
||
|
}
|
||
|
]
|
||
|
```
|
||
|
|
||
|
bundle script:
|
||
|
|
||
|
``` js
|
||
|
var pack = require('browser-pack')();
|
||
|
process.stdin.pipe(pack).pipe(process.stdout);
|
||
|
process.stdin.resume();
|
||
|
```
|
||
|
|
||
|
output:
|
||
|
|
||
|
```
|
||
|
$ browser-pack < input.json
|
||
|
(function(p,c,e){function r(n){if(!c[n]){c[n]={exports:{}};p[n][0](function(x){return r(p[n][1][x])},c[n],c[n].exports);}return c[n].exports}for(var i=0;i<e.length;i++)r(e[i]);return r})({"a1b5af78":[function(require,module,exports){console.log(require('./foo')(5))},{"./foo":"b8f69fa5"}],"b8f69fa5":[function(require,module,exports){module.exports = function (n) { return n * 111 }},{}]},{},["a1b5af78","b8f69fa5"])
|
||
|
```
|
||
|
|
||
|
# methods
|
||
|
|
||
|
``` js
|
||
|
var pack = require('browser-pack');
|
||
|
```
|
||
|
|
||
|
## pack(opts)
|
||
|
|
||
|
Return a through stream that takes a stream of json input and produces a stream
|
||
|
of javascript output. This module does not export its internal `require()`
|
||
|
function but you can prepend `'var require='` to the stream contents to get the
|
||
|
require function. `require()` will return `undefined` when a module hasn't been
|
||
|
defined to support splitting up modules across several bundles with custom
|
||
|
fallback logic.
|
||
|
|
||
|
If `opts.raw` is given, the writable end of the stream will expect objects to be
|
||
|
written to it instead of expecting a stream of json text it will need to parse.
|
||
|
|
||
|
If `opts.sourceMapPrefix` is given and source maps are computed, the
|
||
|
`opts.sourceMapPrefix` string will be used instead of `//#`.
|
||
|
|
||
|
Additionally, rows with a truthy `entry` may have an `order` field that
|
||
|
determines the numeric index to execute the entries in.
|
||
|
|
||
|
You can specify a custom prelude with `opts.prelude` but you should really know
|
||
|
what you're doing first. See the `prelude.js` file in this repo for the default
|
||
|
prelude. If you specify a custom prelude, you must also specify a valid
|
||
|
`opts.preludePath` to the prelude source file for sourcemaps to work.
|
||
|
|
||
|
# install
|
||
|
|
||
|
With [npm](https://npmjs.org), to get the library do:
|
||
|
|
||
|
```
|
||
|
npm install browser-pack
|
||
|
```
|
||
|
|
||
|
and to get the command-line tool do:
|
||
|
|
||
|
```
|
||
|
npm install -g browser-pack
|
||
|
```
|
||
|
|
||
|
# license
|
||
|
|
||
|
MIT
|