splitbrain/php-jsstrip

PHP based JavaScript minimizer

Fund package maintenance!
splitbrain

1.0.1 2023-03-12 10:23 UTC

This package is auto-updated.

Last update: 2024-04-12 12:29:30 UTC


README

This is a PHP port of Nick Galbreath's python tool jsstrip.py.

It was originally ported to PHP in 2006 as part of the DokuWiki wiki engine. It has received several improvements over the years and is now available as a standalone library.

Quoting the original description:

jsstrip is a open-source library to remove whitespace and comments from a javascript file. You might want to do this to optimize size and performance, or to make a file harder to read. It typically makes 30-40% savings in file size.

WARNING

jsstrip is not a true javascript parser. It assumes you have properly delimited the 'end of line' using a ';' (semicolon).

  • Yes print 'foo'; print 'bar';
  • No print 'foo' print 'bar'

You'll have to convert your code to use ';' first.

ALWAYS test the stripped version before deploying to production.

Installation

Install via composer

composer require splitbrain/php-jsstrip

Usage

<?php

require_once 'vendor/autoload.php';

$js = file_get_contents('somefile.js'); // gather your JS here somehow

$minifiedJS = (new \splitbrain\JSStrip\JSStrip())->compress($js);

Skip Minification

You can skip Minification for parts of your code by surrounding it by special comments:

/* BEGIN NOCOMPRESS */
const foo = 'No compression here'; // this comment will also stay
/* END NOCOMPRESS */