ecmacomp

1.0.0 • Public • Published

ecmacomp Build Status

Compile javascript modules, optimize them with prepack and terser if NODE_ENV is production, and do more optimisations from this project. Reduce your code in production today!

Further optimizations are coming up:

  • Caching React elements in variables and modifying them before passing them to React.createElement
  • Turning fs.readFileSync and other sync APIs into their Promise counterparts, and turning every function above the call into an async function
  • Removing react completely using rawact
  • Reducing GC allocations
  • Caching some function results
  • ...And other amazing optimizations

Usage (CLI)

You can disable rollup or prepack (to disable terser, use the NODE_ENV environment variable NODE_ENV=production ecmacomp ...)

$ ecmacomp input.js [--norollup] [--noprepack] [--public dir] [--output file]

Usage (JS API)

await require('ecmacomp')({ filename: 'input.js' })  // Or 'function code....'

Hacking ecmacomp

To hack on ecmacomp, clone this repository (git clone https://github.com/fabiosantoscode/ecmacomp), cd to it, run npm i, write a test in the appropriate place, respect the lint (npm run lint) and start hacking :)

This CLI command reveals the bytecode for a piece of javascript:

$ ecmacomp --parse input.js

You can use this bytecode as reference because it's the bytecode used in all the optimisations.

Readme

Keywords

none

Package Sidebar

Install

npm i ecmacomp

Weekly Downloads

0

Version

1.0.0

License

ISC

Unpacked Size

24.6 kB

Total Files

17

Last publish

Collaborators

  • fabiosantoscode