@blakedarlin/sass-json-importer

中文文档
1.4.0发布于 2026/10/09MITTypeScriptESM + CJS近 30 天下载 2075

Allows importing JSON in Sass files parsed by sass/sass-embedded, with added support for WordPress.

原始使用文档
文档目录7 节
  1. Usage
  2. sass-embedded
  3. loadPaths
  4. camelCase to kebab-case
  5. WordPress internal links
  6. Stringify keys in a map
  7. Acknowledgements

sass-json-importer

JSON importer for sass-embedded. Allows @useing/@importing .json files in Sass files parsed by sass-embedded, using the Importer API.

Requires Node.js 22.12 or later (needed for require() of this ESM package).

Usage

sass-embedded

CommonJS:

const sass = require('sass-embedded');
const jsonImporter = require('@blakedarlin/sass-json-importer');

const sassOptions = {
    importers: [jsonImporter()],
};

// Sync
const result = sass.compile(scssFilename, sassOptions);

// Async
const result = await sass.compileAsync(scssFilename, sassOptions);

ES modules:

import * as sass from 'sass-embedded';
import jsonImporter from '@blakedarlin/sass-json-importer';

const sassOptions = {
    importers: [jsonImporter()],
};

const result = sass.compile(scssFilename, sassOptions);

loadPaths

loadPaths?: string[]

The importer accepts a loadPaths option, which is a string array of absolute paths. The Sass file's own parent is automatically added as the first loadPaths item, so there is no need to specify it.

const result = sass.compile(scssFilename, {
    importers: [
        jsonImporter({ loadPaths: ['/some/path', '/src/node_modules'] }),
    ],
});

camelCase to kebab-case

convertCase?: boolean

Whether to convert standard JavaScript camelCase keys into CSS/SCSS compliant kebab-case keys. Default is false. Example:

variables.json:

{
    "bgBackgroundColor": "red"
}

style.scss:

@import 'variables.json';

div {
    background: $bg-background-color;
}

To enable the convertCase option:

const result = sass.compile(scssFilename, {
    importers: [jsonImporter({ convertCase: true })],
});
resolveWordPressInternals?: boolean

Whether to convert WordPress-style internal links to CSS custom properties. Default is false.

Since WordPress 6.3.0, WP_Theme_JSON::resolve_variables resolves the internal link format to the CSS custom property. E.g., var:preset|color|secondary -> var(--wp--preset--color--secondary). This option likewise converts those types of values when present in the JSON.

const result = sass.compile(scssFilename, {
    importers: [jsonImporter({ resolveWordPressInternals: true })],
});

Stringify keys in a map

By default, in a map all keys are imported unstringified.

A json file:

{
    "red": "#c33",
    "bee-yellow": "#fdfd00"
}

will be imported as scss:

$colors: (
    red: #c33,
    beeYellow: #fdfd00,
);

In the scss map above red is a color, while beeYellow is a string.

stringifyKeys: true can be used to stringify all keys in a map.

When stringifyKeys: true, the following scss map will be imported for the json example from above:

$colors: (
    'red': #c33,
    'beeYellow': #fdfd00,
);

Acknowledgements

This module is based on the original node-sass-json-importer and the sass-json-importer. Unfortunately, neither handles WordPress's theme.json file correctly.

版本与发布记录

@blakedarlin/sass-json-importer 共发布 7 个版本,首次发布于 2024/10/01;过去 12 个月发布了 5 个版本。

版本发布日期距今
1.4.0latest2026/10/0929 天前
1.2.52026/08/122 个月前
1.2.42026/04/226 个月前
1.2.32026/03/147 个月前
1.2.12026/03/137 个月前
1.2.02025/09/031.2 年前

关于 @blakedarlin/sass-json-importer 的常见问题

@blakedarlin/sass-json-importer 是什么?

Allows importing JSON in Sass files parsed by sass/sass-embedded, with added support for WordPress.

如何安装 @blakedarlin/sass-json-importer?

在项目目录运行 npm install @blakedarlin/sass-json-importer,或使用 pnpm add / yarn add / bun add。

@blakedarlin/sass-json-importer 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@blakedarlin/sass-json-importer 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@blakedarlin/sass-json-importer 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.12.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@blakedarlin/sass-json-importer 可以商用吗?

@blakedarlin/sass-json-importer 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@blakedarlin/sass-json-importer 的下载量有多少?

根据 npm 官方下载统计,@blakedarlin/sass-json-importer 在 2026/10/09 – 2026/11/07 这 30 天内被下载 2,075 次,日均约 69 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@blakedarlin/sass-json-importer 还在维护吗?

最新版本 1.4.0 发布于 2026/10/09(29 天前);至今共发布 7 个版本,其中过去 12 个月发布了 5 个;首次发布于 2024/10/01。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。