Skip to content

@getkist/action-terser

JavaScript minification with Terser.

Installation

bash
npm install --save-dev @getkist/action-terser

Actions

JavaScriptMinifyAction

Minifies JavaScript files using Terser.

Options

OptionTypeDefaultDescription
inputFilestringRequiredPath to input JS file
outputFilestringRequiredPath to output file
sourceMapbooleanfalseGenerate source maps
manglebooleantrueMangle variable names
compressboolean|objecttrueCompression options
formatobject-Output format options

Basic Usage

yaml
plugins:
  - @getkist/action-terser

pipeline:
  build:
    stages:
      - name: minify
        steps:
          - action: JavaScriptMinifyAction
            options:
              inputFile: dist/js/bundle.js
              outputFile: dist/js/bundle.min.js

With Source Maps

yaml
- action: JavaScriptMinifyAction
  options:
    inputFile: dist/js/bundle.js
    outputFile: dist/js/bundle.min.js
    sourceMap: true

Custom Compression

yaml
- action: JavaScriptMinifyAction
  options:
    inputFile: dist/js/bundle.js
    outputFile: dist/js/bundle.min.js
    compress:
      drop_console: true
      drop_debugger: true
      pure_funcs:
        - console.log
        - console.debug

After TypeScript Compilation

Common workflow: compile then minify:

yaml
plugins:
  - @getkist/action-typescript
  - @getkist/action-terser

pipeline:
  build:
    stages:
      - name: compile
        steps:
          - action: TypeScriptCompilerAction
            options:
              tsconfig: tsconfig.json
              outDir: dist/js
              
      - name: minify
        steps:
          - action: JavaScriptMinifyAction
            options:
              inputFile: dist/js/index.js
              outputFile: dist/js/index.min.js
              sourceMap: true

Compression Options

Common compression options:

yaml
compress:
  # Remove console statements
  drop_console: true
  
  # Remove debugger statements
  drop_debugger: true
  
  # Inline simple functions
  inline: true
  
  # Remove dead code
  dead_code: true
  
  # Pass count for compression
  passes: 2

Output Format Options

Control output formatting:

yaml
format:
  # Preserve some comments
  comments: "some"
  
  # Use semicolons
  semicolons: true
  
  # Quote style
  quote_style: 3

Size Reduction

Typical size reduction with default settings:

InputOutputReduction
100 KB~40 KB60%
500 KB~180 KB64%
1 MB~350 KB65%

TIP

Enable gzip compression on your server for an additional 70-80% reduction when served.

Released under the MIT License.