Set of front-end tools for Magento 2, based on Gulp.js
If you have any questions about this project let's go to offical Magento forum - Less to Sass Community Project
node >= 4.0.0- heavily recommend using current LTS (v4 branch), not a latest version.
Using avn or nvm? Great! We've included a.node-versionfile for you.- Gulp CLI global package -
npm install -g gulp-cli - Magento 2 project 😄
- Run
composer require snowdog/frontools - Go to package directory
/vendor/snowdog/frontools - Run
npm install - Decide where you want to keep your config files.
You can store them in frontools
configdir or/dev/tools/frontools/config. There is agulp setuptask to copy all sample config files from theconfigto/dev/tools/frontools/configand create a convenient symlink in project root. If you want to keep config files inside frontoolsconfigdir, you have to handle this manually. - Define your themes in
themes.json
- Create browserSync configuration
- Create eslint configuration
- Create sass-lint configuration
- Create stylelint configuration
browser-sync- Run browserSyncclean- Removes/pub/staticfolderdefault- typegulpto see this readme in consoledeploy- Resolve theme inheritance of static assets (i.e. fonts, images) symlinking them topubdir. For default LESS themes it's just a wrapper ofbin/magento dev:source-theme:deploy.--theme name- Deploy single theme--prod- Copy files instead of making symlinks
dev- Runsbrowser-syncandwatchtasks--theme name- Process single theme--maps- Toggles source maps generation--prod- Production output - minifies styles
eslint- Watch and run eslint on specified JS file--file fileName- You have to specify what file you want to lint, fileName without .js
release- Cleanpub/static, deploy all necessary files and compiles everything with--prodflag. Makes code production ready.setup- Creates a convenient symlink from/toolsto/vendor/snowdog/frontoolsand copies all sample files if no configuration exists--symlink name- if you don't want to usetoolsas the symlink you can specify another name
styles- Use this task to manually trigger styles processing pipeline--theme name- Process single theme--maps- Toggles source maps generation--prod- Production output - minifies styles
watch- Watch for style changes and run processing tasks--theme name- Process single theme--maps- Enable inline source maps generation--prod- Production output - minifies styles
csslint- Run stylelint based tests--theme name- Process single theme--ci - Enable throwing errors, useful in CI/CD pipelines
sasslint- Run sass-lint based tests--theme name- Process single theme--ci - Enable throwing errors, useful in CI/CD pipelines
First of all check config/themes.json.sample
src- full path to themedest- full path topub/static/[theme]parent- name of parent theme - not available in themes withdefaultflaglocale- array of available localeslang- define styles lang want to use for processing, should be same as files extension. Out of the box Frontools supportslessandscssdefault- (required for default Magento LESS themes) if your theme use default PHP based processing viabin/magento dev:source-theme:deployset this param totruearea,vendor,name- (required for default Magento LESS themes) self-descriptivefiles- (required for default Magento LESS themes) Array of LESS files to processpostcss- (optional) PostCSS plugins config - have to be an array