metalsmith-postcss
v4.2.0
Published
A Metalsmith plugin that sends your CSS through any PostCSS plugins.
Downloads
35
Readme
metalsmith-postcss
A Metalsmith plugin that sends your CSS through any PostCSS plugins.
Installation
npm install metalsmith-postcss
Getting Started
If you haven't checked out Metalsmith before, head over to their website and check out the documentation.
JavaScript API
Using the JavaScript api for Metalsmith,
just add the postcss package name, optionally with it’s
options, to your .use()
directives. Here is an example
using postcss-pseudoelements
and postcss-nested
to
transform your source files.
var postcss = require('metalsmith-postcss');
metalsmith.use(postcss({
plugins: {
'postcss-pseudoelements': {}
'postcss-nested': {}
}
}));
By default, files with .css
extension will be parsed. This may be overridden
by providing a custom pattern e.g.
metalsmith.use(postcss({
pattern: '*.postcss',
plugins: { ... }
}));
Metalsmith CLI
Using the Metalsmith CLI, just add the postcss package name,
optionally with it’s options, to your metalsmith.json
config.
Here is an example using postcss-pseudoelements
and postcss-nested
to transform your source files.
"metalsmith-postcss": {
"plugins": {
"postcss-pseudoelements": {},
"postcss-nested": {}
},
"map": true
}
Alternative plugin definition syntax
Sometime in PostCSS, plugins need to be defined in a certain order and JavaScript Objects cannot guarantee the order of keys in an object. Therefore, you are able to specify PostCSS plugins using an array of objects(which can guarantee the order of loading).
"metalsmith-postcss": {
"plugins": [
"postcss-pseudoelements",
{
"postcss-nested": {
"some": "config"
}
}
]
}
Sourcemaps
This plugin doesn't generate sourcemaps by default. However, you can enable them using several ways.
Inline sourcemaps
Add map: true
to the options
argument to get your
sourcemaps written into the source file.
metalsmith.use(postcss({
plugins: {},
map: true
}));
Behind the scenes, this resolves to the following:
metalsmith.use(postcss({
plugins: {},
map: {
inline: true
}
}));
External sourcemaps
If you don't want to have your files polluted with sourcemaps,
just set inline: false
. Using that, you'll get .map
files
generated beside your sources.
metalsmith.use(postcss({
plugins: {},
map: {
inline: false
}
}));
Test
To run the tests use:
npm test