Configuration

Wingsuit comes with a preset of variables that are suitable for most use cases.

The Wingsuit configuration file has three main sections
  • apps for app-specific configuration. A typical app is Drupal. Here you can configure where your app is located and how you want to compile and store your assets.

  • designSystem for design system configuration. The design system is where your patterns are living. Here you can configure everything around them.

  • presets is a list of loaded webpack presets. Here you can find more information about webpack bundles.

App details

Each app has the following configurable properties:

  • type the type of the app.
  • path the path to the app.
  • cssMode whether to extract CSS or not.
  • designSystem the name of the design system.
  • distFolder the path to the dist folder.
  • assetBundleFolder the folder to use for assets, under the dist folder.

Design systems details

In the designSystems section you define the folder structure of your design system. Each design system has the following configurable properties:

  • path the path to the design system.
  • patternFolder the folder to use for patterns, under the design system folder.
  • namespaces to configure folder aliases.

Namespaces:

const path = require('path' );

const patterns = path.resolve(__dirname, 'patterns');

module.exports = {
  tokens: path.resolve(__dirname, 'tokens'),
  protons: path.resolve(patterns, '00-protons'),
  atoms: path.resolve(patterns, '01-atoms'),
  molecules: path.resolve(patterns, '02-molecules'),
  organisms: path.resolve(patterns, '03-organisms'),
  templates: path.resolve(patterns, '04-templates'),
  pages: path.resolve(patterns, '05-pages'),
};

You can use namespaces in twig and javascript imports.

TWIG:
  {{ include "@atoms/button/button.twig" }}
Javascript:
  import "atoms/button";

Environment specific configuration

With environments you can overwrite a configuration value for a specific environment.

Here is an example of overwriting the cssMode for development:

environments: {
  ...
      development: {
        apps: {
          storybook: {
            cssMode: "extract"
          }
        }
      }

Presets details

Check the presets documentation for more infos.

Read further
Configure webpack
Learn how to add custom webpack configuration, or alter the existing one.
Presets
Learn about presets and how to use them.