Skip to content

vincentdchan/jetpack.js

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
npm
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Jetpack.js

Build Status npm version

| 中文版 | WASM Online Demo

jetpack.js is an extremely fast js bundler and minifier written in C++.

Features

  • Implemented in C++ with excellent performance
  • Full support for ECMAScript 2017(ECMA-262 8th Edition)
  • Experimental support for JSX, a syntax extension for React
  • Friendly error message
  • Bundle a ES project into a single file.
  • Scope hoisting.
  • Constant folding.
  • Minify the code.
  • Sourcemap generation

Installation & Usage

npm install -g jetpp

Use command line to bundle a js module.

jetpp main.js --out bundle.js

Help command:

$ jetpp --help

Jetpack command line
Usage:
  Jetpack [OPTION...] positional parameters

      --tolerant            tolerant parsing error
      --jsx                 support jsx syntax
      --library             bundle as library, do not bundle node_modules
      --help                produce help message
      --analyze-module arg  analyze a module and print result
      --no-trace            do not trace ref file when analyze module
      --minify              minify the code
      --out arg             output filename of bundle
      --sourcemap           generate sourcemaps

Node.js Program

const jetpp = require('jetpp');

console.log(jetpp.minify('let hello = "world";'));

WebAssembly User

WASM gives you the power of running Jetpack.js in the browser environment.

Install the WASM version

yarn add jetpp-wasm

Include Jetpack.js in your project

import loadJetpack from 'jetpp-wasm';

async function main(code) {
    const jetpack = await loadJetpack();
    console.log(jetpack.minify(code));  // minify
    console.log(jetpack.parse(code));  // parse
}

Platform

jetpack.js supports all popular system including:

  • macOS x64/arm64
  • Windows 64bit
  • Linux 64bit/arm64
  • WebAssembly

Build Dependencies

  • cxxopts
  • fmt
  • nlohmann_json
  • robin-hood-hashing 3.11.1
  • boost(Header-only) 1.76