Multithreaded tool for running node.js style code in the browser inspired by substack's Browserify.
paq implements a subset of Browserify's features with full multithreading support. For impatient people who have to deal with large codebases.
require(path.join(__dirname, 'some_module'))(or any other statically resolvable expression, like
__dirname + '/path')
- Exporting a standalone bundle
- Converting transforms like
hbsfyfor use with
paqcan't actually run transforms yet. Almost there!
- Replacement of
process.envwith actual environment vars.
USAGE: paq <entry files> [options]Options:--eval Returns a function that when evaluated,returns the entry file's export--standalone Returns a module that exports the entryfile's export--convertBrowserifyTransform Returns a module that wraps a browserifytransform for use with paq--ignoreUnresolvableExpressions Ignores expressions in require statementsthat cannot be statically evaluated
- Written in Objective-C++
- Uses a native port of the
- Uses GCD for concurrency
- No external dependencies; escodegen and acorn are embedded in the binary
- Decent tests
- Mac only for now. If you get it running elsewhere, send a PR.
- Implements only the subset of Browserify that I need at work.
- Browserify is a production ready, well maintained, and mature project. paq is none of those things, considering I wrote it in about 24 hours.
To work on paq, you'll need these tools:
- Xcode 6.2
- OS X 10.10.2
- xctool (Get Homebrew then
brew install xctool)
To run the tests (which require the things mentioned above) you can either run
npm test from the command line, or run the
paq-test target in Xcode.