babel-plugin-import-postcss
babel-plugin-import-postcss is a Babel plugin that lets you import
PostCSS processed CSS in JS.
import styles from 'style.css';
var styles = 'nav ul { list-style: none; padding-left: 0; padding-right: 0; }';
Usage
Add babel-plugin-import-postcss to your project:
npm install babel-plugin-import-postcss --save-dev
Add babel-plugin-import-postcss to your Babel configuration:
module.exports = {
plugins: [
'import-postcss'
]
}
It uses your existing PostCSS configuration:
var postcssPresetEnv = require('postcss-preset-env');
module.exports = {
plugins: [
postcssPresetEnv({ stage: 0 })
],
map: { inline: true }
};
Alternatively, configure PostCSS directly within your Babel configuration:
var postcssPresetEnv = require('postcss-preset-env');
module.exports = {
plugins: [
['import-postcss', {
plugins: [
postcssPresetEnv({ stage: 0 })
],
map: { inline: true }
}]
]
}
Options
plugins
The plugins
option determines the PostCSS plugins used to process CSS.
var postcssImport = require('postcss-import');
var postcssPresetEnv = require('postcss-preset-env');
module.exports = {
plugins: [
['import-postcss', {
plugins: [
postcssImport(),
postcssPresetEnv({ stage: 0 })
],
severity: 'ignore'
}]
]
}
Plugins marked up as JSON are also supported.
{
"plugins": [
["import-postcss", {
"plugins": [
"postcss-import",
["postcss-preset-env", { "stage": 0 }]
]
}]
]
}
extensions
The extensions
option determines which file extensions will be transformed
by PostCSS. By default, any extension ending in css
will be transformed.
module.exports = {
plugins: [
['import-postcss', {
extensions: 'scss',
syntax: 'postcss-scss'
}]
]
}
severity
The severity
option determines how errors should be handled. By default
errors are thrown. It is also possible to log errors as a warning
, or to
ignore
all warnings.
module.exports = {
plugins: [
['import-postcss', {
severity: 'ignore'
}]
]
}
Additional Options
Additional options as passed into PostCSS as Process Options. Some useful
options include map
for source map options and syntax
for transforming
Sass, Less, Stylus, etc.
module.exports = {
plugins: [
['import-postcss', {
map: {
inline: true
}
}]
]
}