Skip to content
Multithreaded browserify
C++ Objective-C++ JavaScript Other
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
fixtures
paq-tests
paq.xcodeproj
paq
scripts
.gitignore
.slather.yml
.travis.yml
LICENSE
Makefile
Readme.md
package.json

Readme.md

paq

Build Status Coverage Status

paq implements a subset of Browserify's features with full multithreading support. For impatient people who have to deal with large codebases.

Get updates by following me on Twitter: Follow @_benng

What's Working

  • require('./relative/path')
  • require('some-module')
  • require('node-core-module')
  • require(path.join(__dirname, 'some_module')) (or any other statically resolvable expression, like __dirname + '/path')
  • Exporting a standalone bundle
  • Converting transforms like hbsfy for use with paq

What's Not Working

  • paq can't actually run transforms yet. The code is written and tested, but I haven't hooked it up to the CLI because I couldn't decide on what the API should look like.
  • Replacement of process.env with actual environment vars.

Usage

USAGE: paq <entry files> [options]

Options:
  --parserTasks=<integer>          The maximum number of concurrent AST parsers
  --requireTasks=<integer>         The maximum number of concurrent require
                                   evaluations
  --standalone                     Returns a module that exports the entry
                                   file's export
  --convertBrowserifyTransform     Returns a module that wraps a browserify
                                   transform for use with paq
  --ignoreUnresolvableExpressions  Ignores expressions in require statements
                                   that cannot be statically evaluated

Under The Hood

Caveats

  • 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.

Contributing

To work on paq, you'll need these tools:

  • Xcode 6.2
  • OS X 10.10.2
  • xctool (Get Homebrew then brew install xctool)
  • node
  • npm

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.

You can’t perform that action at this time.