Set of front-end tools for Magento 2, based on Gulp.js
Set of front-end tools for Magento 2, (*2)
composer require snowdog/frontools
cd vendor/snowdog/frontools
yarn
or npm install
config
directory or in dev/tools/frontools/config
(recommended).
There is a 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.themes.json
.themes.json
structureCheck 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
- (default ["autoprefixer({ overrideBrowserslist: browserslist })"]
) 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, (*3)
watcher.json
structureCheck 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. Warning, enabling this option may lead to high CPU utilization! chokidar docs, (*4)
sass-compiler.json
structureYou can choose Sass compiler between the default, but already deprecated, node-sass
or a newer and faster dart-sass
., (*5)
Since the Dart Sass does not have the same set of features as Node Sass, for now we will keep the older version as default., (*6)
You will find sample config files for theses plugins in vendor/snowdog/frontools/config
directory.
* Create browserSync configuration
* Create eslint configuration
* Create sass-lint configuration
* Create stylelint configuration
* Create svg-sprite configuration, (*7)
Use yarn [taskName]
or npm run [taskName]
to run the task.
* babel
- Run Babel, 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 based tests.
* --theme name
- Process single theme.
* --ci
- Enable throwing errors. Useful in CI/CD pipelines.
* dev
- Runs browserSync and inheritance
, babel
, styles
, watch
tasks.
* --theme name
- Process single theme.
* --disableLinting
- Disable JS, SASS, CSS linting.
* --disableMaps
- Disable inline source maps generation.
* emailfix
- Fixes email stylesheet for Magento < 2.3.0. Related issue
* --prod
- Production output - minifies styles and add .min
sufix.
* eslint
- Run eslint against all JS files.
* --theme name
- Process single theme.
* --fix
- Autofix errors
* --ci
- Enable throwing errors. Useful in CI/CD pipelines.
* 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.
* magepackBundle
- Run magepack bundle
command.
* -c
or --config
- (required) Path to previously generated Magepack config file.
* --theme name
- Process single theme.
* magepackGenerate
- Run magepack generate
command.
* --cms-url
- (required) URL to one of CMS pages (e.g. homepage).
* --category-url
- (required) URL to one of category pages.
* --product-url
- (required) URL to one of product pages.
* -u
or --auth-username
- Username for Basic Auth.
* -p
or --auth-password
- Passoword for Basic Auth.
* -d
or --debug
- Turn on debugging mode.
* sasslint
- Run 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
- Disable inline source maps generation.
* --prod
- Production output - minifies styles and add .min
suffix.
* --ci
- Enable throwing errors. Useful in CI/CD pipelines.
* svg
- Run 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 JS, SASS, CSS linting.
* --disableMaps
- Disable inline source maps generation., (*8)