You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Feb 12, 2022. It is now read-only.
Prepack is a partial evaluator for JavaScript. Prepack rewrites a JavaScript bundle, resulting in JavaScript code that executes more efficiently.
For initialization-heavy code, Prepack works best in an environment where JavaScript parsing is effectively cached.
We, the Prepack team at Facebook, have temporarily set down work on Prepack including the React compiler project. You won't see many Prepack PRs while we are currently prioritizing some other projects.
How to use Prepack
Install the CLI via npm,
$ npm install -g prepack
Or if you prefer yarn, make sure you get yarn first,
$ npm install -g yarn
and then install the Prepack CLI via yarn:
$ yarn global add prepack
You may need to prepend (pun intended!) the command with sudo in some cases.
Let the party begin
To compile a file and print the output to the console:
$ prepack script.js
If you want to compile a file and output to another file:
The following are a few plugins to other tools. They have been created and are maintained separately from Prepack itself. If you run into any issues with those plugins, please ask the plugin maintainers for support.
To see the status for a pull request, look for the message All checks have passed or All checks have failed. Click on Show all checks, Details, Artifacts, and then test262-status.txt or coverage-report-sourcemapped/index.html.
How to get the code
Clone repository and make it your current directory.
git submodule init
git submodule update --init
Get yarn and node, then do
yarn
Note: For development work you really need yarn, as many scripts require it.
How to build, lint, type check
Get the code
yarn build
You can later run yarn watch in the background to just compile changed files on the fly.
yarn lint
yarn flow
How to run tests
Get the code
Make sure the code is built, either by running yarn build or yarn watch
yarn test
You can run individual test suites as follows:
yarn test-serializer
This tests the interpreter and serializer. All tests should pass.
yarn test-test262
This tests conformance against the test262 suite. Not all will pass, increasing conformance is work in progress.
How to run the interpreter
Get the code
Make sure the code is built, either by running yarn build or yarn watch
yarn repl
This starts an interactive interpreter session.
How to run Prepack
Get the code
Make sure the code is built, either by running yarn build or yarn watch.
Have a JavaScript file handy that you want to prepack, for example: echo "function hello() { return 'hello'; } function world() { return 'world'; } s = hello() + ' ' + world();" >/tmp/sample.js
cat /tmp/sample.js | yarn prepack-cli
Try --help for more options.
How to validate changes
Instead of building, linting, type checking, testing separately, the following does everything together: yarn validate
How to edit the website
The content for prepack.io resides in the website directory of this repository. To make changes, submit a pull request, just like for any code changes.