Decorate your Sapper project with PostCSS.
@sapper-dragon/postcss
utilizes PostCSS under the surface, a tool for transforming CSS with JavaScript.
npm install @sapper-dragon/postcss --save-dev
# or
yarn add @sapper-dragon/postcss --dev
This project requires the @sapper-dragon/trimmings lib, so look there first for instructions, then come back. 💫
This package includes a PostCSS preprocessor. To use it, import it in your rollup.config.js
file, and add it as a preproccesor like so:
import { preprocess } from '@sapper-dragon/postcss/tools'
// ...
plugins: [
// ...
svelte({
// ...
preprocess: preprocess(),
}),
],
NOTE: this preprocessor expects to find a file at ./src/trimmings/postcss/svelte-pre-imports.postcss
(depending on your settings). Make sure it exists. DO NOT include actual compiled CSS in this preprended file. That will bundle CSS into every component, which you most likely won't want. (Maybe there's such a relevant use case?) This mostly allows you to prepend variables or mixins or other *.postcss
files into every component processed.
@sapper-dragon/postcss
will also convert a global.postcss
files from a postcss
folder and output it to the static/css
folder as global.css
.
You can place a trimmings.config.js
file in the root of your project to set configutations. These are the defaults:
export default {
postcss: {
input: 'src/trimmings/postcss', // path to watch *.postcss files
filename: 'global', // name of file without extension
filter: /\.(postcss|css|scss)$/, // pattern for files to watch
outputStatic: 'static/css', // output path
preImport: 'svelte-pre-imports', // filename without extension for pre-importing postcss vars and mixins
},
// ... additional settings from other @sapper-dragon packages...
}
If preImport
is set to false
, no file will be prepended to the compile.