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

Overview

Packagist Packagist

Magento 2 Frontools

Set of front-end tools for Magento 2

Requirements

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 (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.
  5. Define your themes in themes.json.

themes.json 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 - (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

watcher.json 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. Warning, enabling this option may lead to high CPU utilization! chokidar docs

sass-compiler.json structure

You can choose Sass compiler between the default, but already deprecated, node-sass or a newer and faster dart-sass.

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.

Optional configurations for 3rd party plugins

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

Tasks list

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.
Comments
  • BrowserSync: only check SCSS files

    BrowserSync: only check SCSS files

    Hello,

    Is it possible to tell to BrowserSync to check only SCSS files? I tried to set the files config in browser-sync.json but it seems to check also file in var or phtml ones.

    Thanks.

    opened by VincentMarmiesse 36
  • Not compiling files

    Not compiling files

    Im not sure if its not finding the files or not. Here is my config.

    {
      "backend": {
        "src": "../app/design/adminhtml/Magento/backend",
        "dest": "../pub/static/adminhtml/Magento/backend",
        "locale": ["en_US"],
        "lang": "less",
        "default": true,
        "area": "adminhtml",
        "vendor": "Magento",
        "name": "backend",
        "files": [
          "css/styles-old",
          "css/styles"
        ]
      },
      "blank": {
        "src": "../app/design/frontend/Magento/blank",
        "dest": "../pub/static/frontend/Magento/blank",
        "locale": ["en_US", "pl_PL"],
        "lang": "less",
        "default": true,
        "area": "frontend",
        "vendor": "Magento",
        "name": "blank",
        "files": [
          "css/styles-m",
          "css/styles-l",
          "css/email",
          "css/email-inline"
        ]
      },
      "chefstoys": {
        "src": "../app/design/frontend/ChefsToys/default",
        "dest": "../pub/static/frontend/ChefsToys/default",
        "locale": ["en_US"],
        "lang": "less",
        "default": true,
        "area": "frontend",
        "vendor": "ChefsToys",
        "name": "default",
        "files": [
          "css/styles-m",
          "css/styles-l"
        ]
      },
      "luma": {
        "src": "../app/design/frontend/Magento/luma",
        "dest": "../pub/static/frontend/Magento/luma",
        "locale": ["en_US"],
        "lang": "less",
        "default": true,
        "area": "frontend",
        "vendor": "Magento",
        "name": "luma",
        "files": [
          "css/styles-m",
          "css/styles-l"
        ]
      },
      "demo": {
        "src": "../vendor/snowdog/theme-frontend-demo",
        "dest": "../pub/static/frontend/snowdog/demo",
        "locale": ["en_US", "pl_PL", "ru_RU"],
        "lang": "scss",
        "postcss": ["plugins.autoprefixer()"]
      }
    }
    
    opened by crantron 25
  • Update autoprefixer to the latest version 🚀

    Update autoprefixer to the latest version 🚀

    ☝️ Greenkeeper’s updated Terms of Service will come into effect on April 6th, 2018.

    Version 8.3.0 of autoprefixer was just published.

    Dependency autoprefixer
    Current Version 8.2.0
    Type dependency

    The version 8.3.0 is not covered by your current version range.

    If you don’t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.

    It might be worth looking into these changes and trying to get this project onto the latest version of autoprefixer.

    If you have a solid test suite and good coverage, a passing build is a strong indicator that you can take advantage of these changes directly by merging the proposed change into your project. If the build fails or you don’t have such unconditional trust in your tests, this branch is a great starting point for you to work on the update.


    Release Notes 8.3 “Benigno Numine”

    Seal of the City of Pittsburgh

    Autoprefixer 8.3 adds @media support for grid-template and fixes gradient direction warning.

    Media and Grid Layout

    @evgeny-petukhov continues his great work for Grid Layout support in Autoprefixer.

    Now he improved @media support. Now this CSS will work in IE:

    body {
        grid-template:
            [header-left] "head head" 30px [header-right]
            [main-left]   "nav  main" 1fr  [main-right]
            [footer-left] "nav  foot" 30px [footer-right]
            / 120px repeat(4, 250px 10px);
    }
    

    header { grid-area: head; }

    main { grid-area: main; }

    footer { grid-area: footer; }

    @media (min-width: 1000px) { body { grid-template: [header-left] "head" 30px [header-right] [main-left] "main" 1fr [main-right] [footer-left] "footer" 30px [footer-right] / 1fr; } }

    Don’t forget that Autoprefixer inserts Grid Layout prefixes only if you set grid: true option.

    Gradient Warning

    @radium-v found that Autoprefixer show warning even if cover is outside of radial-gradient.

    a {
        background: radial-gradient(#fff, transparent) 0 0 / cover no-repeat #f0f;
    }

    @kotfire improve old direction detection and fix this issue.

    FAQ and help

    There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


    Your Greenkeeper bot :palm_tree:

    greenkeeper 
    opened by greenkeeper[bot] 22
  • Gulp dev and watch doesn't work since 1.5 upgrade

    Gulp dev and watch doesn't work since 1.5 upgrade

    Hello,

    First of all, thank you for your work, it's highly appreciated! I have upgraded the extension from ^1.4 to ^1.5 and both commands gulp dev and gulp watch doesn't work anymore. No error is raised, gulp just seems to wait but doesn't detect any change. All worked fine with the previous version.

    gulp styles works perfectly.

    Any thoughts?

    Thanks!

    opened by VincentMarmiesse 22
  • How to deal with CORS and XHR in Browsersync?

    How to deal with CORS and XHR in Browsersync?

    I'm having an issue with CORS preventing an XHR request from loading when running through Browsersync.

    From doing a bit of research, it looks like Browsersync doesn't apply rewrite rules or middleware to XHR loads, only HTML directly loaded through Browsersync.

    Does anyone have any ideas around this? I've tried bypassing CORS in .htaccess and Magento but no luck.

    Something that is strange is that I tried adding x-frame-options to my env.php and for the troublesome request, it has this header twice:

    image

    Not really sure how browsers handle this.

    I've thought about running it through nginx on my development environment and trying to override the headers there to add Access-Control-Allow-Origin manually to requests.

    Thanks.

    opened by stu177 14
  • Update cssnano to the latest version 🚀

    Update cssnano to the latest version 🚀

    Version 4.0.0 of cssnano was just published.

    Dependency cssnano
    Current Version 3.10.0
    Type dependency

    The version 4.0.0 is not covered by your current version range.

    If you don’t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.

    It might be worth looking into these changes and trying to get this project onto the latest version of cssnano.

    If you have a solid test suite and good coverage, a passing build is a strong indicator that you can take advantage of these changes directly by merging the proposed change into your project. If the build fails or you don’t have such unconditional trust in your tests, this branch is a great starting point for you to work on the update.


    Release Notes 4.0.0

    Breaking changes

    • We dropped support for Node 4, now requiring at least Node 6.9.

    Features

    • postcss-merge-longhand now optimises border-spacing property.

    Bug Fixes

    • postcss-normalize-unicode doesn't change U to lowercase for IE <= 11 and Edge <= 15.
    • postcss-merge-longhand works with custom properties (Example a { border-style:dotted; border-style:var(--variable) }) correctly.
    • postcss-ordered-values handle border property with invalid border width value correctly.
    • postcss-merge-rules handles :-ms-input-placeholder and ::-ms-input-placeholder selectors correctly.
    • postcss-merge-rules works with all property correctly.
    • postcss-normalize-url don't handle empty url function.
    • postcss-normalize-url handles data and *-extension:// URLs correctly.
    • postcss-colormin adds whitespace after minified value and before function.
    • postcss-minify-font-values better escapes font name.
    • postcss-minify-params doesn't remove all for IE.
    FAQ and help

    There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


    Your Greenkeeper bot :palm_tree:

    greenkeeper 
    opened by greenkeeper[bot] 14
  • Scss from modules path's config

    Scss from modules path's config

    Hei, I've stucked with your new great option: "Modules" in the themes.json. Could you please advise me how to solve described below issue? Or maybe there no such functionality and I'm searching for it in vain..

    My themes.json looks in such way:

    "convert-lanullva": {
        "src"            : "app/design/frontend/Convert/lanullva",
        "dest"           : "pub/static/frontend/Convert/lanullva",
        "locale"         : ["nb_NO"],
        "lang"           : "scss",
        "parent"         : "convert-two",
        "disableSuffix"  : true,
        "modules": {
          "Convert_ProductSlideIn": "vendor/convert/module-product-slidein"
        },
        "postcss"        : ["plugins.autoprefixer()"]
      }
    

    I've added modules option in themes.json and execute 'gulp inheritance' command. I see that 'gulp watch' task see my changes in the "vendor/convert/module-product-slidein" folder:

    [14:13:52] Change detected. Theme: convert-lanullva File: var/view_preprocessed/frontools/frontend/Convert/lanullva/Convert_ProductSlideIn/view/frontend/styles/module/_common.scss

    also I've included it in my 'convert-lanullva' theme styles.scss as : @import "../Convert_ProductSlideIn/view/frontend/web/styles/module";

    but after that 'convert-lanullva' theme is not compiled automatically after changing _module.scss in 'Convert_ProductSlideIn' folder. I thought that this option were added to resolve styles inheritance during the compilation. No?

    PS. Also due to this pull-request https://github.com/SnowdogApps/magento2-frontools/pull/227 I haven't realized how could I use "Modules" option in themes.config to include Foundation styles from the bower folder.

    opened by cernfortech 13
  • Watcher ignore some nested SASS partials

    Watcher ignore some nested SASS partials

    Hello,

    at first I want to point out that everything works fine but don't know why I can't overwrite _cart.scss in MY-THEME/Magento_Checkout/styles/module/ when working on gulp dev. Strange is that I can overwrite _minicart.scss in this same directory then styles are compiled and BrowserSync work.

    Regards Matt

    opened by mattkrupnik 13
  • [debugging] browser-sync Reload is not working + inheritance from parent theme

    [debugging] browser-sync Reload is not working + inheritance from parent theme

    If I read the code correctly, the browser should reload after LESS files are processed. But it does not.

    But browser sync states

    [BS] Browser Connected: Chrome, version: 52.0.2743.116
    
    opened by amenk 12
  • BrowserSync injects styles-l.css but nothing changes

    BrowserSync injects styles-l.css but nothing changes

    Hi,

    I'm not sure if this is a bug or just my configuration. But no matter I try there is no effect in the browser. I change e.g. a background-color then save my file and I can see in the console, that gulp detects changes:

    [14:47:46] Theme: banana Locale: de_DE banana_product_list.css Compiled!
    [BS] 1 file changed (banana_product_list.css)
    [14:47:54] Theme: banana Locale: de_DE styles-m.css Compiled!
    [BS] 1 file changed (styles-m.css)
    [14:47:54] Theme: banana Locale: de_DE styles-l.css Compiled!
    [BS] 1 file changed (styles-l.css)
    

    After that I see a little tooltip in my browser "inject styles-l.css". I can also register a little flashing in the browser. But then ... nothing happens. I desperately tried it with !important but again no new background-color.

    I also got this error with the standard installation:

    gulp-notify: [Error running Gulp] Error: variable @media-common is undefined in file ...

    So I had to declare all variables inside each file but I guess that is not the best way.

    Maybe it is important but I extend the porto theme with my banana theme.

    The themes.json looks like this:

    "banana": {
        "src": "../vendor/fruit/magento2-banana-theme-banana",
        "dest": "../pub/static/frontend/Fruit/banana",
        "locale": ["de_DE"],
        "lang": "less",
        "default": true,
        "area": "frontend",
        "vendor": "Fruit",
        "name": "banana",
        "files": [
          "css/styles-m",
          "css/styles-l"
        ]
    
    opened by TKlement 12
  • How to support dependencies per Less file?

    How to support dependencies per Less file?

    First, here is my configuration for reference.

      "kangaroo": {
        "src": "../app/design/frontend/AlanKent/kangaroo",
        "dest": "../pub/static/frontend/AlanKent/kangaroo",
        "locale": ["en_US", "en_AU"],
        "lang": "less",
        "default": true,
        "area": "frontend",
        "vendor": "AlanKent",
        "name": "kangaroo",
        "files": [
          "css/kangaroo2",
          "css/styles-m",
          "css/styles-l",
          "css/email",
          "css/email-inline"
        ]
      },
    

    css/kangaroo2 is a .less file in the theme. When I touch this file, all of the Less files are recompiled. This is slow.

    How do you suggest I achieve something like the following?

    • For css/styles-l watch css/styles-l.less and **/_*.less.
    • For css/styles-m watch css/styles-m.less and **/_*.less.
    • For css/email watch css/email.less and **/_*.less.
    • For css/email-inline watch css/email-inline.less and **/_*.less.
    • For css/kangaroo2 watch **/*.less.

    The first four could be merged in practice, because they all depend on the same files. So if one changes, they will all probably need recompiling. But it is important (for speed) that changes to kangaroo2.less DO NOT trigger the first 4 to recompile (and hence the **/_*.less rule - only things with leading underscore will trigger those files to recompile).

    I actually don't care which way its achieved, but being able to change kangaroo2.less without compiling the other files is the important part. It goes from say 10 seconds to under 1 per file change - much nicer experience. Maybe need to be able to specify watch dependencies per file?

    opened by alankent 12
  • Unable to install since `npm` version 8.6.0

    Unable to install since `npm` version 8.6.0

    We've recently upgraded our 'node' docker image which brought an upgrade of npm (from version 8.1.2 to version 8.11.0). From what I can tell, there is a change that was introduced in npm version 8.6.0 which is not compatible with this module.

    I've checked that I'm on the latest version of this package (tested with both version 1.12.0 and 1.12.2)

    Steps to reproduce

    1. Clone this repository (tested with 2a5854781c970044af38aabdce2efa1a6bf9e56e, which is tagged version 1.12.2)
    2. Run docker run --rm -it -v $PWD:/app -w /app node:16 npm install

    Expected result

    Task completes successfully.

    Actual result

    Screenshot_2022-07-05_12-35-50

    npm ERR! code ERESOLVE
    npm ERR! ERESOLVE could not resolve
    npm ERR! 
    npm ERR! While resolving: [email protected]
    npm ERR! Found: [email protected]
    npm ERR! node_modules/eslint
    npm ERR!   eslint@"^8.1.0" from the root project
    npm ERR!   peer eslint@">=5" from [email protected]
    npm ERR!   node_modules/eslint-utils
    npm ERR!     eslint-utils@"^3.0.0" from [email protected]
    npm ERR! 
    npm ERR! Could not resolve dependency:
    npm ERR! peer eslint@"^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" from [email protected]
    npm ERR! node_modules/eslint-plugin-compat
    npm ERR!   eslint-plugin-compat@"^3.13.0" from the root project
    npm ERR! 
    npm ERR! Conflicting peer dependency: [email protected]
    npm ERR! node_modules/eslint
    npm ERR!   peer eslint@"^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" from [email protected]
    npm ERR!   node_modules/eslint-plugin-compat
    npm ERR!     eslint-plugin-compat@"^3.13.0" from the root project
    npm ERR! 
    npm ERR! Fix the upstream dependency conflict, or retry
    npm ERR! this command with --force, or --legacy-peer-deps
    npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
    npm ERR! 
    npm ERR! See /root/.npm/eresolve-report.txt for a full report.
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     /root/.npm/_logs/2022-07-05T11_35_35_317Z-debug-0.log
    

    At time of writing the 'node:16' image has npm version 8.11.0. When testing with version 8.5.5 this works, and from 8.6.0 this error shows. Works: docker run --rm -it -v $PWD:/app -w /app node:16 bash -c 'npm install -g [email protected] && npm install' Error as above: docker run --rm -it -v $PWD:/app -w /app node:16 bash -c 'npm install -g [email protected] && npm install'

    opened by fredden 1
  • Can not install frontools on arm64 CPUs

    Can not install frontools on arm64 CPUs

    While trying to install on Mac M1, there's issue:

    Exit code: 1
    Command: node install.js
    Arguments:
    Directory: /var/www/html/vendor/snowdog/frontools/node_modules/phantomjs-prebuilt
    Output:
    PhantomJS not found on PATH
    Unexpected platform or architecture: linux/arm64
    It seems there is no binary available for your platform/architecture
    

    Node v16.15.0

    PhantomJS is deprecated but it's used by gulp-svg-sprite.


    Temporary fix that works for me, is to change in package.json:

    "gulp-svg-sprite": "svg-sprite/gulp-svg-sprite#dev"
    

    Unfortunately new changes, that are dropping PhantomJS (in svg-sprite v2.0.0-beta1) are not released yet and working only on dev branch. https://github.com/svg-sprite/gulp-svg-sprite/commit/8b4803dfcd185749f52f4230344d559dbd483514


    EDIT:

    Release of new gulp-svg-sprite version dropping PhatnomJS is comming soon. https://github.com/svg-sprite/gulp-svg-sprite/issues/127#issuecomment-1141048410

    opened by patrykbura 1
  • [Snyk] Upgrade chokidar from 3.5.2 to 3.5.3

    [Snyk] Upgrade chokidar from 3.5.2 to 3.5.3

    Snyk has created this PR to upgrade chokidar from 3.5.2 to 3.5.3.

    merge advice :information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.


    • The recommended version is 1 version ahead of your current version.
    • The recommended version was released 6 days ago, on 2022-01-18.
    Release notes
    Package name: chokidar
    • 3.5.3 - 2022-01-18
      No content.
    • 3.5.2 - 2021-06-15

      "Update" glob-parent dependency from ~5.1.0 to ~5.1.2 to silence "vulnerability" warnings

    from chokidar GitHub release notes
    Commit messages
    Package name: chokidar
    • 4804aba Release 3.5.3.
    • 9f038a3 Funding.
    • 0188634 Merge pull request #1159 from alan-agius4/patch-1
    • 54bea80 style: delete yarn.lock
    • a851e8b Merge pull request #1158 from alan-agius4/test-async
    • b37688a Merge pull request #1157 from alan-agius4/fix-chain-return
    • 7230778 ci: add `dtslint` in the lint workflow
    • c8c0c79 style: fix dts lint issue
    • 62e4da8 build: add missing `typescript`
    • 3d37a7d test: update `close` method test
    • 30ea58d fix: improve `add` and `unwatch` TypeScript definitions
    • 5c70fe3 Merge pull request #1010 from nicks/nicks/symlink
    • 9cba9fb Merge pull request #1142 from mcecode/update-chokidar-cli-link
    • f1cd881 Update chokidar-cli link in README.md
    • ec84fd2 Merge pull request #1140 from iheyunfei/types/0816
    • 407cd61 types: use correct type def for ignored option
    • bb63e1c handle promise rejection when a symlink's target does not exist. Fixes https://github.com/paulmillr/chokidar/issues/955

    Compare


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.

    For more information:

    🧐 View latest project report

    🛠 Adjust upgrade PR settings

    🔕 Ignore this dependency or unsubscribe from future upgrade PRs

    opened by snyk-bot 0
  • [Snyk] Upgrade globby from 12.0.2 to 12.2.0

    [Snyk] Upgrade globby from 12.0.2 to 12.2.0

    Snyk has created this PR to upgrade globby from 12.0.2 to 12.2.0.

    merge advice :information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.


    • The recommended version is 2 versions ahead of your current version.
    • The recommended version was released 7 days ago, on 2022-01-17.
    Release notes
    Package name: globby from globby GitHub release notes
    Commit messages
    Package name: globby
    • fc653c7 12.2.0
    • 2e57ffa Fix readme
    • 1224230 Work around TypeScript type problem with `URL` global (#206)
    • a9fc794 Accept `URL` in function returned by `isGitIgnored` (#207)
    • 1be9d02 12.1.0
    • 73c0aca Support `URL` as `cwd` (#201)
    • de4082b DRY a little bit (#203)
    • 60b7116 Use `fs.promises.readFile` instead of `promisify(fs.readFile)` (#204)
    • 79765fb Upgrade dev dependencies

    Compare


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.

    For more information:

    🧐 View latest project report

    🛠 Adjust upgrade PR settings

    🔕 Ignore this dependency or unsubscribe from future upgrade PRs

    opened by snyk-bot 0
  • [Snyk] Upgrade stylelint from 14.0.0 to 14.0.1

    [Snyk] Upgrade stylelint from 14.0.0 to 14.0.1

    Snyk has created this PR to upgrade stylelint from 14.0.0 to 14.0.1.

    merge advice :information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.


    • The recommended version is 1 version ahead of your current version.
    • The recommended version was released 14 days ago, on 2021-10-26.
    Release notes
    Package name: stylelint
    • 14.0.1 - 2021-10-26
      • Fixed: package size by excluding docs (#5643).
      • Fixed: overrides property ignoring dot directories (#5629).
      • Fixed: custom syntax require error handling (#5635).
      • Fixed: function-calc-no-unspaced-operator false positives for hyphenated functions (#5636).
    • 14.0.0 - 2021-10-21

      Migrating to 14.0.0 guide.

      • Removed: Node.js 10 support (#5303).
      • Removed: syntax option (#5297).
      • Removed: configOverrides option (#5530).
      • Removed: rules deprecated in 13.7.0 (#5295).
      • Removed: function-calc-no-invalid rule (#5296).
      • Changed: ignoreFiles to be extendable (#5596).
      • Security: addressed ReDoS issue with regex in indentation (#5539).
      • Added: TypeScript type definitions (#5582).
      • Added: customSyntax option as a property in the configuration object (#5538).
      • Added: overrides property to configuration object (#5521).
      • Added: disableFix as secondary option to rules property in the configuration object (#5460).
      • Added: quiet option to Node.js API (#5542).
      • Added: color-hex-alpha rule (#5316).
      • Added: custom-property-no-missing-var-function rule (#5317).
      • Added: function-calc-no-unspaced-operator autofix (#5273).
      • Added: ignoreFunctions: [] to length-zero-no-unit (#5314).
      • Added: ignoreAtRules: [] to no-invalid-position-at-import (#5520).
      • Added: ignoreProperties: [] to number-max-precision (#5421).
      • Fixed: "No files matching the pattern" when using backslash paths on Windows (#5386).
      • Fixed: function-url-quotes problem messages to be consistent with other *-quotes rules (#5488).
      • Fixed: length-zero-no-unit false positives for flex property (#5315).
      • Fixed: media-feature-name-no-unknown false positives for prefers-contrast (#5428).
      • Fixed: media-feature-name-no-unknown false positives for dynamic-range & video-dynamic-range (#5613).
      • Fixed: media-feature-name-value-allowed-list TypeError for spaceless condition (#5581).
      • Fixed: property-no-unknown false positives for Less maps (#5381).
      • Fixed: selector-class-pattern false positives for Less parametric mixins (#5378).
      • Fixed: max-empty-lines autofix for Less comments (#5507).
      • Fixed: named-grid-areas-no-invalid false negatives for grid and grid-template shorthand properties (#5514).
      • Fixed: unit-no-unknown false positives for nested property declarations (#5500).
    from stylelint GitHub release notes
    Commit messages
    Package name: stylelint
    • 7d34399 14.0.1
    • 9337e2b Prepare 14.0.1
    • c1babac Update CHANGELOG.md
    • 2ac20d7 Fix package size by excluding docs (#5643)
    • aa1c87d Document removing cache in migration guide (#5649)
    • babbe4b Refactor to fix typos (#5648)
    • 3fc7fa0 Refactor for better type-checking (#5644)
    • 848c350 Update CHANGELOG.md
    • 85c8855 Fix false positives for hyphenated functions in `function-calc-no-unspaced-operator` (#5636)
    • 280c2d2 Update CHANGELOG.md
    • 71e0d50 Fix custom syntax require error handling (#5635)
    • 6ee62f4 Update dependencies and remove `@ types/jest` (#5642)
    • 76ad75f getPostcssResult: remove unneeded variable fallback (#5640)
    • 2bd5ba9 Update CHANGELOG.md for #5629
    • 397586e Fix `overrides` property ignoring dot directories (#5629)
    • 482dcb1 Update README links for main
    • b0cda8c Use main branch

    Compare


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.

    For more information:

    🧐 View latest project report

    🛠 Adjust upgrade PR settings

    🔕 Ignore this dependency or unsubscribe from future upgrade PRs

    opened by snyk-bot 0
  • [Snyk] Upgrade eslint from 8.1.0 to 8.2.0

    [Snyk] Upgrade eslint from 8.1.0 to 8.2.0

    Snyk has created this PR to upgrade eslint from 8.1.0 to 8.2.0.

    merge advice :information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.


    • The recommended version is 1 version ahead of your current version.
    • The recommended version was released 3 days ago, on 2021-11-05.
    Release notes
    Package name: eslint
    • 8.2.0 - 2021-11-05

      Features

      • c9fefd2 feat: report class evaluation TDZ errors in no-use-before-define (#15134) (Milos Djermanovic)

      Documentation

      • c415c04 docs: Use string rule severity in CLI examples (#15253) (Kevin Partington)
      • 12b627d docs: fix typo in working-with-rules.md (#15233) (Nitin Kumar)
      • a86ffc0 docs: fix broken anchor in configuration files (#15223) (Pierre Berger)
      • ee8af5f docs: Link to unit tests from rule documentation (#15207) (Brandon Mills)
      • 1c0ca3c docs: add ci and perf tags for commit (#15215) (Nitin Kumar)

      Build Related

      • 796587a build: upgrade eslint-release to v3.2.0 to support conventional commits (#15246) (Milos Djermanovic)

      Chores

      • cf5b6be chore: update @ eslint/eslintrc to avoid different versions of js-yaml (#15265) (Milos Djermanovic)
      • 4fd7a6c perf: don't prepare a fix for valid code in key-spacing (#15239) (Milos Djermanovic)
      • fda533c chore: update strip-ansi dependency (#15221) (Nitin Kumar)
      • 67949bd ci: Remove Node 16 CI prerelease workaround (#14935) (Brandon Mills)
    • 8.1.0 - 2021-10-22
      • 446b4b3 Docs: Update commit message format docs (#15200) (Nicholas C. Zakas)
      • d9d84a0 Fix: keyword-spacing conflict with space-infix-ops on > (fixes #14712) (#15172) (Milos Djermanovic)
      • a1f7ad7 Fix: allow baseConfig to extend preloaded plugin config (fixes #15079) (#15187) (Milos Djermanovic)
      • 3d370fb New: Add no-unused-private-class-members rule (fixes #14859) (#14895) (Tim van der Lippe)
      • e926b17 New: Add name to RuleTester (#15179) (Gareth Jones)
      • 90a5b6b Chore: improve performance of :function selector (#15181) (Milos Djermanovic)
      • 31af1c8 Chore: fix counting of files in performance test (#15190) (Milos Djermanovic)
      • 1b87fa8 Build: add node v17 (#15193) (唯然)
      • 0fb3bb2 Docs: remove instanceof from keyword-spacing docs (#15180) (Milos Djermanovic)
      • 249a040 Upgrade: eslint-plugin-eslint-plugin to v4 (#15169) (Bryan Mishkin)
      • 35f3254 Docs: Describe range in rule docs (fixes #14162) (#15174) (Nicholas C. Zakas)
      • b5049c8 Chore: Update stale bot settings (#15173) (Nicholas C. Zakas)
      • 2b32f50 Docs: Fix typo in README.md (#15168) (Dmitriy Fishman)
      • dd58cd4 Chore: migrate master to main (#15062) (Nitesh Seram)
      • ec0f8e0 Chore: Add stale issue/PR checker (#15151) (Nicholas C. Zakas)
      • 2cfbd4b Docs: Update README team and sponsors (ESLint Jenkins)
    from eslint GitHub release notes
    Commit messages
    Package name: eslint
    • 04e91b6 8.2.0
    • e7685f2 Build: changelog update for 8.2.0
    • cf5b6be chore: update @ eslint/eslintrc to avoid different versions of `js-yaml` (#15265)
    • c9fefd2 feat: report class evaluation TDZ errors in no-use-before-define (#15134)
    • 4fd7a6c perf: don't prepare a fix for valid code in key-spacing (#15239)
    • c415c04 docs: Use string rule severity in CLI examples (#15253)
    • 796587a build: upgrade eslint-release to v3.2.0 to support conventional commits (#15246)
    • 99b1fca Sponsors: Sync README with website
    • 3630211 Sponsors: Sync README with website
    • 12b627d docs: fix typo in `working-with-rules.md` (#15233)
    • 4e9c6ed Sponsors: Sync README with website
    • a86ffc0 docs: fix broken anchor in configuration files (#15223)
    • fda533c chore: update `strip-ansi` dependency (#15221)
    • ee8af5f docs: Link to unit tests from rule documentation (#15207)
    • 1c0ca3c docs: add `ci` and `perf` tags for commit (#15215)
    • 67949bd ci: Remove Node 16 CI prerelease workaround (#14935)

    Compare


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.

    For more information:

    🧐 View latest project report

    🛠 Adjust upgrade PR settings

    🔕 Ignore this dependency or unsubscribe from future upgrade PRs

    opened by snyk-bot 0
Releases(1.12.0)
  • 1.12.0(Nov 7, 2021)

    • Dropped support for using gulp directly, all tasks need to be used via yarn [taskName] or npm run [taskName]
    • Rewritten ESLint task, integrated with watch and dev tasks
    • Added option to set a custom Babel config
    • New default config for Babel and Browserlist, that targets only most popular browsers in North America and Europe (no IE11)
    • Magepack tasks throws now more meaningful errors if required params were not set
    • Added support for Node.js v16, dropped  for Node.js v12
    • All dependencies got update to the latest version
    • Native ESM is now used internaly instead of pollified version
    Source code(tar.gz)
    Source code(zip)
  • 1.11.0(Nov 16, 2020)

    Added

    • magepackGenerate and magepackBundle tasks - you don't need to install globally Magepack CLI anymore to optimize your theme performance
    • Option to import .js config files via getConfig helper

    Changed

    • Minor dependencies bump
    Source code(tar.gz)
    Source code(zip)
  • 1.10.1(Nov 5, 2020)

  • 1.10.0(Oct 27, 2020)

    • Option to use Dart Sass compiler - Since Node Sass is now deprecated, we are adding an option to switch to Dart Sass. Unfortunately, Dart Sass doesn't support all Node Sass features, so for now we will keep the older solution as default, to simplify the migration process.
    • Node.js v14 LTS support added
    Source code(tar.gz)
    Source code(zip)
  • 1.9.0(Sep 18, 2020)

    • Allow imports from root node_modules for scss - #356 thanks to @GrimLink
    • Refactor eslint task - #396
    • dependencies update - https://github.com/SnowdogApps/magento2-frontools/commit/920e915d0382a1a0246e6c9b918f285158eb7310
    Source code(tar.gz)
    Source code(zip)
  • 1.8.1(Jan 9, 2020)

  • 1.8.0(Nov 14, 2019)

    Breaking changes

    • email-fix task was renamed to emailfix. To keep backward compatibility you can still use old naming via npm scripts yarn email-fix or npm run email-fix
    • AT themes.json in postcss config of the theme, you shouldn't use plugins.something anymore, but just something. Although, all dependencies are no longer automatically available everywhere, so if you wish to use some additional PostCSS plugin, you need to import it manually in helpers/scss.js file. Please check sample config

    Under the hood changes

    • Rewrite to Gulp 4.x - ES Modules, cleaner code and other cool stuff
    • Node.js 12.x (active LTS) support
    • Dependencies clean up and update, including vulnerability fixes
    Source code(tar.gz)
    Source code(zip)
  • 1.7.0(Jul 13, 2019)

    • support for multiple BrowserSync instances - https://github.com/SnowdogApps/magento2-frontools/pull/341
    • option to set any path as dest - https://github.com/SnowdogApps/magento2-frontools/pull/350
    • fixed issue when dependencies were installed via npm - https://github.com/SnowdogApps/magento2-frontools/issues/349 https://github.com/SnowdogApps/magento2-frontools/issues/348 https://github.com/SnowdogApps/magento2-frontools/issues/346
    • dependencies update - https://github.com/SnowdogApps/magento2-frontools/pull/355
    • Supported Node.js version limited to current LTS
    • Under the hood refactoring mostly related to code style
    Source code(tar.gz)
    Source code(zip)
  • 1.6.0(Dec 18, 2018)

    • babel task now saves source maps to separate files, also in production mode - #335
    • new email-fix task to solve problems with inline emails styles on older Magento 2 versions - #247
    • Babel upgraded to 7.x - #343
    • Lots of dependencies upgrades
    • npm-shrinkwrap.json added to make npm installs safer
    • Required Node.js version set to >=8.9.0 <11.0.0 to target active LTS versions
    Source code(tar.gz)
    Source code(zip)
  • 1.5.0(Jun 18, 2017)

    • rewritten watch task now handles also adding, removing, moving and renaming files on the fly. Also, issues related to nested SASS imports and hanging watcher should be now eliminated.
    • new svg task to easily generate SVG icons sprites
    • #208 - ability to disable adding .min to output files, while using --prod flag
    • dropped support for localeOverwrites, due to implementation complexity and ability to easily replace it with new child theme created just for these overwrites
    • partial Windows OS support dropped, due to implementation complexity and lack of the willingness to invest time on maintenance OS not supported by Magento platform
    • deploy and browser-sync task removed
    Source code(tar.gz)
    Source code(zip)
  • 1.4.0(Mar 13, 2017)

    • Babel support has landed in Frontools 🔥
    • Inheritance engine now supports all types of files.
    • Added ignore param to help you with unwanted files from 3rd party modules.
    • Refactored deploy task are now using inheritance task results.
    Source code(tar.gz)
    Source code(zip)
  • 1.3.10(Mar 11, 2017)

  • 1.3.5(Mar 3, 2017)

    I found a huge mistake in the way I was handling multiple gulp streams, which leads to bugy behavior of SASS lint, CSS lint and styles compilation.

    Source code(tar.gz)
    Source code(zip)
  • 1.3.0(Mar 3, 2017)

  • 1.2.0(Jan 24, 2017)

    • added styleDir param to handle themes with different structure i.e. closer to Magento 2 default web/css
    • simplified theme.json configuration - removed lang param and postcss now have a default value
    • improved nested inheritance (#142 & #143)
    Source code(tar.gz)
    Source code(zip)
  • 1.1.2(Dec 1, 2016)

    npm-shrinkwrap.json file removed. If you want to keep safe versions of dependencies all the time, use Yarn, yarn.lock file is added to repository and will be updated in future.

    Source code(tar.gz)
    Source code(zip)
  • 1.1.0(Oct 26, 2016)

    Thanks to day on airports, in planes... being just offline, we have some new features in Frontools 🚀

    • Improved SASS and CSS linting - finally it's useful! Linting is now integrated in watch task and is fired only on changed files, giving you live feedback about issues in your code 💥 You can also manually disable linting using --disableLinting flag. Old tasks sasslint and csslint works same way, just checking whole codebase for issues.
    • Sourcemaps are now enabled by default - everyone use or should use source maps, so to keep commands shorter I decide to enable this option by default. You can disable this feature using --disableMaps flag.
    • Improved watching for themes with per locale overwrites - unnecessary compilations steps removed, everything is based on "smart" dependency tree engine, like in regular themes 🚀 #performance
    • Under the hood things - I'm not anymore generating dummy Gulp tasks for themes and locales, everything is just based on IIFE in helpers
    Source code(tar.gz)
    Source code(zip)
  • 1.0.0(Oct 24, 2016)

    :dancing_men: Say hi to brand new 1.0.0 :dancing_men:

    • Dropped LESS support - You can still use older version of Frontools to compile your LESS themes
    • New inheritance engine - I'm not using includePaths param anymore. Everything is based on symlinks created in var/view_preprocesed, like in clean M2.
    • Per locale overwrites - thanks to new inheritance engine, you can easily overwrite styles partials per locale
    • Yarn support - brand new, super fast, package manager for Node.js support out of the box, with pre-generated yarn.lock
    • Current Node.js LTS version support- v6 branch
    • Improved styles processing - if your theme have few locales, but you are not using any kind of customizations, it will compile styles just once and save in all necessary places 🔥 #performance
    • Smarter files watching - watcher know which partial belong to which main file and compile only this one 🔥 #performance
    • Globby package improvements - build-in gulp globby package somehow is slow in some cases, so I just replace it with standalone version and get's like 20 faster files list generation 🔥 #performance
    • Watching other files like PHTML, XML and JS - now browser-sync will know that you save this file and will reload your browser automagically
    Source code(tar.gz)
    Source code(zip)
  • 0.11.0(Jul 27, 2016)

    Finally theme inheritance works fine! 🎆

    • SASS partials imports can be nested, no more copying whole directories to overwrite singe partial 🎉
    • static assets files, like fonts or images, are now inherited 💪

    But also:

    • @timneutkens create a setup task to simplify installation of tools 🙇
    • CI tests added. Whole codebase are now checked using eslint with customized version of idiomatic.js rules 🔍
    • (as always) performance optimization 🐎

    WARNING

    If you are a SASS Blank theme user, you have to upgrade your theme to version 0.8.0 to use this release, b/c styles are now placed in different, better, directory structure.

    Source code(tar.gz)
    Source code(zip)
  • 0.10.0(Jun 20, 2016)

    Thanks to @timneutkens we have few new features:

    • ability to store configs outside of tools directory. Now you can keep them as other M2 configuration files in /dev/tools - let's read readme to get more info.
    • automatic node version switcher config file to avn
    Source code(tar.gz)
    Source code(zip)
  • 0.9.0(May 20, 2016)

    Added inheritance of themes partials, now you can easily modify i.e. single module, without copying whole theme. Works for both sass and less (without //@magento_import, so you can't use blank or luma) themes. To enable this feature add parent param to your theme configuration - check config/themes.json.sample

    Source code(tar.gz)
    Source code(zip)
  • 0.8.0(May 12, 2016)

    • There are no more tools folder in project root, everything stay in one place inside vendor. Now you can create symlink using gulp symlink task and use tools exactly same as before. This change requires to adjust directories paths - now almost everything works on absolute paths. Be sure to check sample config and update your themes.json!
    • All configs was renamed to samples, to simplify overwriting.
    • Added helper to check if proper config files was loaded, if not throw an error with description.
    • Updated node dependencies. There are few important bugs fixed in gulp-sass (i.e. you can't compile styles, when your theme contains not existing extends) package, so your theme may throw some errors during compilations and it's not my fault 😉 Other packages also may contains other important fixes, so pls check changelogs of updated packages.
    • Some minor refactoring #performance
    Source code(tar.gz)
    Source code(zip)
  • 0.7.0(Apr 13, 2016)

    Default theme.json file was renamed to theme.json.example - tools will throw error when configuration file was not found. Now you can create custom package containing only configuration files, instead of full copy.

    Other changes:

    • improved dependencies loading - should be little bit faster
    • dependencies update
    • styles watching and compilation process ignores node_modules directories
    Source code(tar.gz)
    Source code(zip)
  • 0.5.3(Mar 29, 2016)

  • 0.5.0(Feb 22, 2016)

  • 0.4.1(Feb 17, 2016)

Owner
SNOW.DOG
SNOW.DOG
MagentoSnippets - Magento Front End Snippets, plugin for Sublime Text

MagentoSnippets Magento Front End Snippets, plugin for Sublime Text. This tool serves to aid the productivity during the Magento's theme development t

MageFront 27 Nov 1, 2022
Resources for the Magento 2 Certified Professional Front End Developer exam

Magento 2 Certified Professional Front End Developer Training Resources Below are the 6 slide decks used internally at Fisheye to help us prepare for

Fisheye Academy 109 Oct 21, 2022
Next-generation front-end for Magento 2

The next-generation front-end for Magento 2. Fast. Reliable. Extensible. Getting started – create a new application and deploy it as Magento 2 theme o

ScandiPWA 509 Jan 2, 2023
Nuber is an open source container management platform it provides a front end to manage your own cloud infrastructure, using Linux Containers virtualization technology

Nuber is an open source container management platform it provides a front end to manage your own cloud infrastructure, using Linux Containers virtualization technology

null 33 Dec 14, 2022
A next-generation package manager for the front-end

Duo is a next-generation package manager that blends the best ideas from Component, Browserify and Go to make organizing and writing front-end code qu

Duo 3.4k Dec 28, 2022
Phalcon Mooc an example API + Front End with automated tests

NovaMooc - a Phalcon project A Mooc project developed with Phalcon, a PHP framework. Key Features • How To Use • Contributing • Credits • License Key

Les Enovateurs 19 Dec 4, 2022
WordPress plugin which contains a collection of modules to apply theme-agnostic front-end modifications

Soil A WordPress plugin which contains a collection of modules to apply theme-agnostic front-end modifications. Soil is a commercial plugin available

Roots 1k Dec 20, 2022
Simply removes the applcation's front-end and redirects it to the admin area.

Simply removes the application's front-end and redirects it to the admin area.

Albright Labs 1 Mar 28, 2022
A research raw data repository for researchers of Arba Minch University built using Codeigniter which follows MVC architecture. The front-end is build using Bootstrap.

Arba Minch University Dataset Repository This system is a research dataset repository for Arba Minch University researchers and is build using Codeign

Wuletaw Wonte 8 Jul 1, 2022
This repository contains the code for the front end/UI of the login system

Bug-free-login This repository contains the code for the front end/UI of the login system Requirements PHP 5.5.0 or higher. How to use Download ZIP wi

Abhijeet Kumar 2 Oct 6, 2022
Starless Sky is a network protocol for secure identities, providing the use of assymetric identities, public information, end-to-end messaging and smart contracts

Descentralized network protocol providing smart identity over an secure layer. What is the Starless Sky Protocol? Starless Sky is a network protocol f

Starless Sky Protocol 3 Jun 19, 2022
Naive Bayes works by looking at a training set and making a guess based on that set.

Naive Bayes Naive Bayes works by looking at a training set and making a guess based on that set. It uses simple statistics and a bit of math to calcul

Assisted Mindfulness 29 Nov 27, 2022
Phpcs-magento-rules - A set of PHPCS rules used by made.com when hacking Magento

Made.com PHPCS Magento Rules A set of PHPCS rules used by made.com when hacking Magento. Pre-Requisites PHPCS Installation Short Version Clone this re

Made.com Tech Team 26 Jun 3, 2020
GitHub action to set up PHP with extensions, php.ini configuration, coverage drivers, and various tools.

GitHub action to set up PHP with extensions, php.ini configuration, coverage drivers, and various tools.

Shivam Mathur 2.4k Jan 6, 2023
Set of classes and tools to communicate with a Noso wallet using NosoP

NosoPHP Set of classes and tools to communicate with a Noso wallet using NosoP(Noso Protocol) Examples Node Info include __DIR__ . '/vendor/autoload.p

Noso Project 1 Jan 10, 2022
A tool that allows to quickly export data from Magento 1 and Magento 2 store and import it back into Magento 2

Simple Import / Export tool A tool that allows to quickly export data from Magento 1 and Magento 2 store and import it back into Magento 2. Table data

EcomDev B.V. 51 Dec 5, 2022
The swiss army knife for Magento developers, sysadmins and devops. The tool provides a huge set of well tested command line commands which save hours of work time. All commands are extendable by a module API.

netz98 magerun CLI tools for Magento 2 The n98 magerun cli tools provides some handy tools to work with Magento from command line. Build Status Latest

netz98 758 Dec 28, 2022