Get Sass variables as JSON object.
npm install get-sass-vars --save
import { promises as fs } from 'fs';
import sassVars from 'get-sass-vars';
(async () => {
const css = await fs.readFile('./index.scss', 'utf-8');
const json = await sassVars(css);
console.log(json);
/* {
"$foo": "16px",
"$bar": "17.6px",
"$baz": 42,
"$foo-bar": "#666",
"$foo-bar-baz": "#262626",
"$foo-bar-baz-bad": "#123",
"$grault": [1, 2, "3", "4px", "42%", "1.23457px", [4, 5, 6], {"foo": "bar baz"}],
"$garply": {"foo": 1, "bar": [2, 3], "baz": "3 3 3"},
"$qux": false,
"$fred": true,
"$corgle": null
} */
})();
$foo: 16px;
$bar: $foo * 1.1;
$baz: 42;
$foo-bar: #666;
$foo-bar-baz: darken($foo-bar, 25%);
$foo-bar-baz-bad: #123 !default;
$grault: 1, 2, '3', 4px, 42%, 1.23456789px, (4, 5, 6), (
foo: 'bar baz'
);
$garply: (
foo: 1,
bar: (
2,
3
),
baz: '3 3 3'
);
$qux: false;
$fred: true;
$corgle: null;
.nested {
.selector {
$nested-var: thud;
}
}
Returns: Promise<JsonObject>
Gets Sass variables from Sass string.
Only top-level variables will be considered, anything inside selector or at-rule is ignored.
Type: string
Sass input string.
Type: object
Type: boolean
Default: false
Camelize first-level JSON object keys and strip inital $
(e.g. $foo-bar
will
become fooBar
).
Type: sass.Options<"async">
Default: {}
Returns: JsonObject
Gets Sass variables from Sass string. Sync version.
All arguments are same as async version, except options.sassOptions
which is
of type sass.Options<"sync">
.
- get-sass-vars-loader - Webpack loader for this module
MIT © Ivan Nikolić