PHPackages                             envoy/frontools - 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. envoy/frontools

ActiveMagento2-component[Utility &amp; Helpers](/categories/utility)

envoy/frontools
===============

Set of front-end tools for Magento 2, based on Gulp.js

1.6.4(8y ago)12.2kMITJavaScript

Since Jan 27Pushed 7y ago6 watchersCompare

[ Source](https://github.com/weareenvoy/magento2-frontools)[ Packagist](https://packagist.org/packages/envoy/frontools)[ RSS](/packages/envoy-frontools/feed)WikiDiscussions master Synced 4d ago

READMEChangelogDependenciesVersions (88)Used By (0)

[![Travis branch](https://camo.githubusercontent.com/a90848b55c5f76e86a772a84c5ce26ee257c0081fa1979b5387e43010113b40a/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f536e6f77646f67417070732f6d6167656e746f322d66726f6e746f6f6c732f6d61737465722e737667)](https://travis-ci.org/SnowdogApps/magento2-frontools) [![Packagist](https://camo.githubusercontent.com/563e354c30fad771dfa982a129ab1893c53bb6569f0bae48cc1da24df38e98a9/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f736e6f77646f672f66726f6e746f6f6c732e737667)](https://packagist.org/packages/snowdog/frontools) [![Packagist](https://camo.githubusercontent.com/c5090710e395020dcac4c24ca9714ad38732a849548b69d4710883b881d78b60/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f736e6f77646f672f66726f6e746f6f6c732e737667)](https://packagist.org/packages/snowdog/frontools) [![Greenkeeper badge](https://camo.githubusercontent.com/f9ab9f197a172784efa0f44fa16ef70a6e09c7e7df76a927ce1512741192c181/68747470733a2f2f6261646765732e677265656e6b65657065722e696f2f536e6f77646f67417070732f6d6167656e746f322d66726f6e746f6f6c732e737667)](https://greenkeeper.io/)

Magento 2 Frontools
===================

[](#magento-2-frontools)

Set of front-end tools for Magento 2, based on Gulp.js

Questions
---------

[](#questions)

If you have any questions about this project let's go to offical Magento forum - [Less to Sass Community Project](https://community.magento.com/t5/Less-to-Sass-Community-Project/bd-p/less-to-sass)

Requirements
------------

[](#requirements)

- Unix-like OS (please, do not ask about Windows support)
- Node.js LTS version (currently branch v6). We recommend to use [avn](https://github.com/wbyoung/avn) to automate version switching. Required configuration is already added to repository as `.node-version` file.
- Gulp CLI global package - `yarn global add gulp-cli` or `npm install -g gulp-cli`
- Magento 2 project with SASS based theme i.e. [SASS version of "Blank"](https://github.com/SnowdogApps/magento2-theme-blank-sass)

Installation
------------

[](#installation)

1. Run `composer require snowdog/frontools`
2. Go to package directory `cd vendor/snowdog/frontools`
3. Run `yarn` or `npm install`
4. Decide where you want to keep your config files. You can store them in Frontools `config` directory or in `dev/tools/frontools/config`. There is a `gulp setup` task to copy all sample config files from the `config` to `dev/tools/frontools/config` and create a convenient symlink `tools` in the project root. If you want to keep config files inside frontools `config` dir, you have to handle this manually.
5. Define your themes in `themes.json`.

`themes.json` structure
-----------------------

[](#themesjson-structure)

Check `config/themes.json.sample` to get samples.

- `src` - full path to theme
- `dest` - full path to `pub/static/[theme_area]/[theme_vendor]/[theme_name]`
- `locale` - array of available locales
- `parent` - name of parent theme
- `stylesDir` - (default `styles`) path to styles directory. For `theme-blank-sass` it's `styles`. By default Magento 2 use `web/css`.
- `disableSuffix` - disable adding `.min` suffix using `--prod` flag.
- `postcss` - (deafult `["plugins.autoprefixer()"]`) PostCSS plugins config. Have to be an array.
- `modules` - list of modules witch you want to map inside your theme
- `ignore` - array of ignore patterns

`watcher.json` structure
------------------------

[](#watcherjson-structure)

Check `config/watcher.json.sample` to get samples.

- `usePolling` - set this to `true` to successfully watch files over a network (i.e. Docker or Vagrant) or when your watcher dosen't work well. Warining, enabling this option may lead to high CPU utilization! [chokidar docs](https://github.com/paulmillr/chokidar#performance)

Optional configurations for 3rd party plugins
---------------------------------------------

[](#optional-configurations-for-3rd-party-plugins)

You will find sample config files for theses plugins in `vendor/snowdog/frontools/config` directory.

- Create [browserSync](https://www.browsersync.io/) configuration
- Create [eslint](https://github.com/adametry/gulp-eslint) configuration
- Create [sass-lint](https://github.com/sasstools/sass-lint) configuration
- Create [stylelint](https://github.com/stylelint/stylelint) configuration
- Create [svg-sprite](https://github.com/jkphl/gulp-svg-sprite) configuration

Tasks list
----------

[](#tasks-list)

- `babel` - Run [Babel](https://babeljs.io/), a compiler for writing next generation JavaScript.
    - `--theme name` - Process single theme.
    - `--prod` - Production output - minifies and uglyfy code.
- `clean` - Removes `/pub/static` directory content.
- `csslint` - Run [stylelint](https://github.com/stylelint/stylelint) based tests.
    - `--theme name` - Process single theme.
    - `--ci` - Enable throwing errors. Useful in CI/CD pipelines.
- `default` - type `gulp` to see this readme in console.
- `dev` - Runs [browserSync](https://www.browsersync.io/) and `inheritance`, `babel`, `styles`, `watch` tasks.
    - `--theme name` - Process single theme.
    - `--disableLinting` - Disable SASS and CSS linting.
    - `--disableMaps` - Toggles source maps generation.
- `eslint` - Watch and run [eslint](https://github.com/adametry/gulp-eslint) on specified JS file.
    - `--file fileName` - You have to specify what file you want to lint, fileName without .js.
- `inheritance` - Create necessary symlinks to resolve theme styles inheritance and make the base for styles processing. You have to run in before styles compilation and after adding new files.
- `sasslint` - Run [sass-lint](https://github.com/sasstools/sass-lint) based tests.
    - `--theme name` - Process single theme.
    - `--ci` - Enable throwing errors. Useful in CI/CD pipelines.
- `setup` - Creates a convenient symlink from `/tools` to `/vendor/snowdog/frontools` and copies all sample files if no configuration exists.
    - `--symlink name` - If you don't want to use `tools` as the symlink you can specify another name.
- `styles` - Use this task to manually trigger styles processing pipeline.
    - `--theme name` - Process single theme.
    - `--disableMaps` - Toggles source maps generation.
    - `--prod` - Production output - minifies styles and add `.min` sufix.
    - `--ci` - Enable throwing errors. Useful in CI/CD pipelines.
- `svg` - Run [svg-sprite](https://github.com/jkphl/gulp-svg-sprite) to generate SVG sprite.
    - `--theme name` - Process single theme.
- `watch` - Watch for style changes and run processing tasks.
    - `--theme name` - Process single theme.
    - `--disableLinting` - Disable SASS and CSS linting.
    - `--disableMaps` - Enable inline source maps generation.

###  Health Score

37

—

LowBetter than 83% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity17

Limited adoption so far

Community18

Small or concentrated contributor base

Maturity79

Established project with proven stability

 Bus Factor1

Top contributor holds 79.8% 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.

###  Release Activity

Cadence

Every ~11 days

Recently: every ~32 days

Total

68

Last Release

2976d ago

Major Versions

0.11.4 → 1.0.02016-10-24

### Community

Maintainers

![](https://www.gravatar.com/avatar/96eeec6287af943457221489167ac8aed708a3560a5f4b080bf1497a03c106e4?d=identicon)[keenode](/maintainers/keenode)

---

Top Contributors

[![Igloczek](https://avatars.githubusercontent.com/u/5119280?v=4)](https://github.com/Igloczek "Igloczek (386 commits)")[![greenkeeperio-bot](https://avatars.githubusercontent.com/u/14790466?v=4)](https://github.com/greenkeeperio-bot "greenkeeperio-bot (48 commits)")[![keenan-envoy](https://avatars.githubusercontent.com/u/6609387?v=4)](https://github.com/keenan-envoy "keenan-envoy (19 commits)")[![timweprovide](https://avatars.githubusercontent.com/u/67999201?v=4)](https://github.com/timweprovide "timweprovide (15 commits)")[![greenkeeper[bot]](https://avatars.githubusercontent.com/in/505?v=4)](https://github.com/greenkeeper[bot] "greenkeeper[bot] (7 commits)")[![philcook](https://avatars.githubusercontent.com/u/2623518?v=4)](https://github.com/philcook "philcook (2 commits)")[![keithbentrup](https://avatars.githubusercontent.com/u/253579?v=4)](https://github.com/keithbentrup "keithbentrup (2 commits)")[![youanden](https://avatars.githubusercontent.com/u/183880?v=4)](https://github.com/youanden "youanden (1 commits)")[![matthewhaworth](https://avatars.githubusercontent.com/u/920191?v=4)](https://github.com/matthewhaworth "matthewhaworth (1 commits)")[![slackerzz](https://avatars.githubusercontent.com/u/3061752?v=4)](https://github.com/slackerzz "slackerzz (1 commits)")[![timneutkens](https://avatars.githubusercontent.com/u/6324199?v=4)](https://github.com/timneutkens "timneutkens (1 commits)")[![Bartlomiejsz](https://avatars.githubusercontent.com/u/9566840?v=4)](https://github.com/Bartlomiejsz "Bartlomiejsz (1 commits)")

### Embed Badge

![Health badge](/badges/envoy-frontools/health.svg)

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

###  Alternatives

[santigarcor/laravel-vuetable

Vuetable laravel backend package

2750.3k](/packages/santigarcor-laravel-vuetable)[bitbag/product-bundle-plugin

Product bundle for Sylius.

2174.4k](/packages/bitbag-product-bundle-plugin)

PHPackages © 2026

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