@fang/terser

Compress Javascript files using Terser.

Usage no npm install needed!

<script type="module">
  import fangTerser from 'https://cdn.skypack.dev/@fang/terser';
</script>

README

fang-starter-plugin

Compress Javascript files using Terser.

Summary

About

I created this plugin to be able to compress Javascript files. Terser is the most popular and currently maintained Javascript compression tool, and I wanted fang to have an official plugin for it.

Features

Requirements

Having @fang/core installed on version 0.*.

Installation

  • Using NPM: npm install --save-dev @fang/terser
  • Using Yarn: yarn add --dev @fang/terser

Examples

1. Compress a Javascript file

This example assumes you have a example/code.js file containing your code, and you want to output a compressed code in example/dist/js/code.js.

// script.js
const { run } = require("@fang/core");
const save = require("@fang/save");
const terser = require("@fang/terser");

const js = {
  name: "Javascript",
  input: "example/code.js",
  tasks: [
    terser(),
    save({
      folder: "example/dist/js",
    }),
  ],
};

const main = async () => await run([js]);

main();

Run your script, and you should see something like this in the console.

$ node script.js
fang: start
8 CPUs core(s)
1 tasks to run
Javascript: start
Javascript: 30.604ms
fang: 183.533ms

2. Customize how Terser compress your file

This examples assumes you havbe a example/code.js file containing your code, and your want to output a compressed code in example/dist/js/code.js.

// script.js
const { run } = require("@fang/core");
const save = require("@fang/save");
const terser = require("../lib");

const js = {
  name: "Javascript",
  input: "example/code.js",
  tasks: [
    terser({
      compress: {
        passes: 5,
        unsafe: true,
        pure_getters: true,
      },
      toplevel: true,
    }),
    save({
      folder: "example/dist/js",
    }),
  ],
};

const main = async () => await run([js]);

main();

Run node script.js, and you should see something like this in your console.

$ node script.js
fang: start
8 CPUs core(s)
1 tasks to run
Javascript: start
Javascript: 37.211ms
fang: 168.672ms