Instantiates a CSS syntax error. Can be instantiated for a single position or for a range.
Error message.
If for a single position, the line number, or if for a range, the inclusive start position of the error.
If for a single position, the column number, or if for a range, the exclusive end position of the error.
Source code of the broken file.
Absolute path to the broken file.
PostCSS plugin name, if error came from plugin.
Source column of the error.
error.column //=> 1
error.input.column //=> 4
PostCSS will use the input source map to detect the original location.
If you need the position in the PostCSS input, use error.input.column
.
Source column of the error's end, exclusive. Provided if the error pertains to a range.
error.endColumn //=> 1
error.input.endColumn //=> 4
PostCSS will use the input source map to detect the original location.
If you need the position in the PostCSS input, use error.input.endColumn
.
Source line of the error's end, exclusive. Provided if the error pertains to a range.
error.endLine //=> 3
error.input.endLine //=> 4
PostCSS will use the input source map to detect the original location.
If you need the position in the PostCSS input, use error.input.endLine
.
Absolute path to the broken file.
error.file //=> 'a.sass'
error.input.file //=> 'a.css'
PostCSS will use the input source map to detect the original location.
If you need the position in the PostCSS input, use error.input.file
.
Input object with PostCSS internal information about input file. If input has source map from previous tool, PostCSS will use origin (for example, Sass) source. You can use this object to get PostCSS input source.
error.input.file //=> 'a.css'
error.file //=> 'a.sass'
Source line of the error.
error.line //=> 2
error.input.line //=> 4
PostCSS will use the input source map to detect the original location.
If you need the position in the PostCSS input, use error.input.line
.
Full error text in the GNU error format with plugin, file, line and column.
error.message //=> 'a.css:1:1: Unclosed block'
Always equal to 'CssSyntaxError'
. You should always check error type
by error.name === 'CssSyntaxError'
instead of error instanceof CssSyntaxError
,
because npm could have several PostCSS versions.
if (error.name === 'CssSyntaxError') {
error //=> CssSyntaxError
}
Plugin name, if error came from plugin.
error.plugin //=> 'postcss-vars'
Error message.
error.message //=> 'Unclosed block'
Source code of the broken file.
error.source //=> 'a { b {} }'
error.input.source //=> 'a b { }'
Returns a few lines of CSS source that caused the error.
If the CSS has an input source map without sourceContent
,
this method will return an empty string.
error.showSourceCode() //=> " 4 | }
// 5 | a {
// > 6 | bad
// | ^
// 7 | }
// 8 | b {"
Whether arrow will be colored red by terminal
color codes. By default, PostCSS will detect
color support by process.stdout.isTTY
and process.env.NODE_DISABLE_COLORS
.
Few lines of CSS source that caused the error.
Returns error position, message and source code of the broken part.
error.toString() //=> "CssSyntaxError: app.css:1:1: Unclosed block
// > 1 | a {
// | ^"
Error position, message and source code.
The CSS parser throws this error for broken CSS.
Custom parsers can throw this error for broken custom syntax using the
Node#error
method.PostCSS will use the input source map to detect the original error location. If you wrote a Sass file, compiled it to CSS and then parsed it with PostCSS, PostCSS will show the original position in the Sass file.
If you need the position in the PostCSS input (e.g., to debug the previous compiler), use
error.input.file
.