9.4.0 • Published 16 days ago

@financial-times/dotcom-build-sass v9.4.0

Weekly downloads
657
License
MIT
Repository
-
Last release
16 days ago

@financial-times/dotcom-build-sass

This package exports a Webpack plugin to configure it with a way to load and generate CSS files from Sass source code.

Getting started

This package is compatible with Node 12+ and is distributed on npm.

npm install --save-dev @financial-times/dotcom-build-sass

After installing the package you must add it to the list of plugins in your project's webpack.config.js configuration file:

+ const { PageKitSassPlugin } = require('@financial-times/dotcom-build-sass')

module.exports = {
  plugins: [
+    new PageKitSassPlugin()
  ]
}

Once setup, this plugin will enable you to use Sass files (.scss and .sass) as entry points into your source code.

const { PageKitSassPlugin } = require('@financial-times/dotcom-build-sass')

module.exports = {
   entry: {
      styles: path/to/styles.scss
   },
   plugins: [new PageKitSassPlugin()]
}

Scope

This plugin adds a rule to the Webpack configuration to handle .scss files. It first uses the sass-loader to transpile Sass source code, then sends the output through to the postcss-loader for optimisations, and finally the css-loader. The mini-css-extract-plugin is added to generate .css files and the webpack-fix-style-only-entries to clean up any empty JavaScript bundles.

Sass has been configured to find packages installed with npm by looking in the 'node_modules/@financial-times' directories. It can be configured to look in additional locations by passing the relevant paths to the plugin as absolute paths.

new PageKitSassPlugin({ includePaths: [path.resolve('./path-to-sass-files')] })

Please note that by default Sass will resolve all bare @import statements from the current working directory rather than relative to the file being processed. This means it will not find dependencies in nested node_modules directories.

PostCSS is configured with the Autoprefixer and cssnano transforms.

The CSS loader has @import and url() resolution disabled as these should be handled by Sass.

Options

OptionTypeDefaultDescription
webpackImporterBooleanfalseSee https://github.com/webpack-contrib/sass-loader#webpackimporter
prependDataString''See https://webpack.js.org/loaders/sass-loader/#prependdata
includePathsString[][]See https://sass-lang.com/documentation/js-api#includepaths

Sass build monitoring

Sass build times are stored locally and remotely, where your project sets relevant API keys. Alternatively, you may turn both these features off using environment variable.

  • Local reporting: A running total of your local Sass build times are stored in a temporary file on your machine. This statistic is reported periodically for your interest, along with a prompt to support FT efforts to move away from Sass.
  • Alongside this, your local Sass build times are sent to the biz-ops metrics api, provided the below environment variables are set.
Environment VariableRequiredDefaultDescription
FT_SASS_STATS_NOTICEnothrottleHow often to log Sass statistics out to terminal. One of throttle, never, always
FT_SASS_STATS_NOTICE_THROTTLE_SECONDSno1800How many seconds to wait between logging Sass statistics out to terminal.
FT_SASS_STATS_NOTICE_THROTTLE_PERCENTAGEno30A percentage increase in total Sass build time in which to log out statistics to the terminal regardless of time.
FT_SASS_STATS_MONITORnooffSet to on to send Sass build time statistics to biz-ops metrics api Requires FT_SASS_BIZ_OPS_API_KEY and FT_SASS_BIZ_OPS_SYSTEM_CODE.
FT_SASS_BIZ_OPS_API_KEYno | A Biz-Ops Metrics API Key for your system.
FT_SASS_BIZ_OPS_SYSTEM_CODEno | The biz-ops system code of your project. Use page-kit if your system does not have a biz-ops code yet.
9.4.0

16 days ago

9.3.4

3 months ago

8.2.6

3 months ago

9.3.3

3 months ago

9.3.2

3 months ago

9.3.1

4 months ago

9.3.0

4 months ago

9.2.1

4 months ago

9.2.0

4 months ago

9.1.1

4 months ago

9.1.0

4 months ago

9.0.3

5 months ago

8.2.3

7 months ago

8.2.2

7 months ago

8.2.5

7 months ago

8.2.4

7 months ago

9.0.0-beta.5

8 months ago

9.0.0-beta.4

8 months ago

9.0.0-beta.3

8 months ago

9.0.0-beta.2

9 months ago

9.0.0-beta.1

9 months ago

9.0.0-beta.9

8 months ago

9.0.0-beta.8

8 months ago

9.0.0-beta.7

8 months ago

9.0.0-beta.6

8 months ago

8.2.1

8 months ago

8.2.0

8 months ago

9.0.2

6 months ago

9.0.1

6 months ago

9.0.0-beta.15

7 months ago

9.0.0-beta.16

7 months ago

9.0.0-beta.13

7 months ago

9.0.0-beta.14

7 months ago

9.0.0-beta.11

8 months ago

9.0.0-beta.12

8 months ago

9.0.0-beta.10

8 months ago

8.1.0

11 months ago

7.3.5

1 year ago

7.3.4

1 year ago

8.0.0

1 year ago

7.3.3

1 year ago

7.3.2

1 year ago

7.3.1

1 year ago

7.3.0

1 year ago

7.2.6

1 year ago

7.2.7

1 year ago

7.1.3

2 years ago

7.2.5

1 year ago

7.2.4

2 years ago

7.1.4

2 years ago

7.1.1

2 years ago

7.1.0

2 years ago

7.0.0

2 years ago

6.0.1

2 years ago

6.0.0

2 years ago

6.0.2

2 years ago

5.1.0

2 years ago

4.2.0

2 years ago

5.0.0

2 years ago

4.0.0

2 years ago

4.1.0

2 years ago

3.0.0

2 years ago

2.6.1

3 years ago

2.6.2

3 years ago

2.6.0

3 years ago

2.5.2

3 years ago

2.5.1

3 years ago

2.4.0

3 years ago

2.3.0

3 years ago

2.2.1

4 years ago

2.2.0

4 years ago

2.1.1

4 years ago

2.1.0-pre.1

4 years ago

2.1.0

4 years ago

2.0.2

4 years ago

2.0.1

4 years ago

2.0.0

4 years ago

1.1.0

4 years ago

1.0.0

4 years ago

0.8.1

4 years ago

0.8.0

4 years ago

0.7.3

4 years ago

0.7.2

4 years ago

0.6.5

4 years ago

0.7.1

4 years ago

0.7.0-beta.2

4 years ago

0.7.0

4 years ago

0.7.0-beta.1

4 years ago

0.6.3

4 years ago

0.6.2

4 years ago

0.6.1

4 years ago

0.6.0

4 years ago

0.5.8

4 years ago

0.5.7

4 years ago

0.5.6

4 years ago

0.5.5

4 years ago

0.4.5

4 years ago

0.5.4

4 years ago

0.4.4

4 years ago

0.5.3

4 years ago

0.5.2

4 years ago

0.4.3

4 years ago

0.4.2

4 years ago

0.5.1

4 years ago

0.5.0-beta.3

4 years ago

0.5.0

4 years ago

0.5.0-beta.1

4 years ago

0.5.0-beta.2

4 years ago

0.4.1

4 years ago

0.4.0

4 years ago

0.3.5

4 years ago

0.3.4

4 years ago

0.3.3

4 years ago

0.3.2

5 years ago

0.3.1

5 years ago

0.3.0

5 years ago

0.2.3

5 years ago

0.2.2

5 years ago

0.2.1

5 years ago

0.2.0

5 years ago

0.1.4

5 years ago

0.1.3

5 years ago

0.1.2

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago

0.0.4

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago

0.0.1-test.2

5 years ago

0.0.1-test.1

5 years ago