PHPackages                             allenlinatoc/assetmon - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. allenlinatoc/assetmon

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

allenlinatoc/assetmon
=====================

A quick asset monitoring and compression PHP script

09PHP

Since Oct 8Pushed 10y ago1 watchersCompare

[ Source](https://github.com/allenlinatoc/assetmon)[ Packagist](https://packagist.org/packages/allenlinatoc/assetmon)[ RSS](/packages/allenlinatoc-assetmon/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependenciesVersions (1)Used By (0)

ASSETMON
========

[](#assetmon)

An open-source automated web asset monitoring and compilation tool written in PHP.

---

This tool recursively monitors and compiles all web assets so that web applications will have to load one single file.

Getting started
---------------

[](#getting-started)

### 1. Configure `assetmon.json`

[](#1-configure-assetmonjson)

> Note: `assetmon.json` is the default configuration file of **assetmon**.

The snippet below is the default content of `assetmon.json`:

```
{

    "extensions": [
        "js",
        "css"
    ],

    "directories" : [
        "./"
    ],

    "destination" : "./assets",

    "recursive" : true

}

```

**Configuration directives**

1. #### `extensions (array)`

    [](#extensions-array)

    > **Default:** `[ "js", "css" ]`

    An array of file extensions to be included in asset monitoring.
2. #### `directories (array)`

    [](#directories-array)

    > **Default:** `[ "./" ]`

    An array of existing directories to be included in recursive file monitoring. **Symbolic paths** are allowed.
3. #### `destination (string)`

    [](#destination-string)

    > **Default:** `"./assets"`

    The path to destination folder. If path does not exist, it will automatically be created. **Symbolic paths** are allowed.
4. #### `recursive (boolean)`

    [](#recursive-boolean)

    > **Default:** `true`

    Boolean value if assets (from `directories`) will be recursively monitored.

---

### 2. Start `assetmon`

[](#2-start-assetmon)

Copy **assetmon** to your current working directory and make sure that `assetmon.json` is properly configured and is in the same directory.

> **Note:** `assetmon` file is a GZip compressed PHP archive

Optionally, you can specify the configuration to be used through `config` argument.

**Console command syntax**

```
$ php assetmon [config]

```

If you work with an existing `assetmon.json` config file, you can follow the simple syntax below:

```
$ php assetmon/assetmon

```

The output asset files will vary based on what is specified in `extensions` and `destination`.

Sample scenario
===============

[](#sample-scenario)

**Example**

Given the sample configuration below:

```
{

    "extensions": [
        "js",
        "css"
    ],

    "directories" : [
        "./resources",
		"./dev/resources"
    ],

    "destination" : "./public/assets",

    "recursive" : true

}

```

In this example, it will do a *recursive monitoring* and compilation of `js` and `css` files.

The process starts by checking if directories `./resources` and `./dev/resources` exists.

Only existing directories/paths will be processed in *recursive monitoring*.

Outputs expected are `./public/assets/all.js` and `./public/assets/all.css`, respectively.

> **Note:** Whether the script found such file extensions from the given directories, it will still produce the mentioned files with respect to the specified `extensions`.

###  Health Score

20

—

LowBetter than 13% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/b810165275a8b880962edc53874a0754c4cc51cdf73e879701230cd3f2253d3d?d=identicon)[ogreworx](/maintainers/ogreworx)

---

Top Contributors

[![allenlinatoc](https://avatars.githubusercontent.com/u/7568476?v=4)](https://github.com/allenlinatoc "allenlinatoc (1 commits)")

### Embed Badge

![Health badge](/badges/allenlinatoc-assetmon/health.svg)

```
[![Health](https://phpackages.com/badges/allenlinatoc-assetmon/health.svg)](https://phpackages.com/packages/allenlinatoc-assetmon)
```

###  Alternatives

[friendsofsymfony/message

A framework-agnostic PHP 5.4+ user-to-user messaging library

6315.0k](/packages/friendsofsymfony-message)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
