@cross-css/native

中文文档
0.9.0发布于 2026/11/09MITTypeScriptCommonJS零依赖构建来源已验证近 30 天下载 2491

XCSS 编译器的原生节点. js 绑定

中文使用文档
文档目录5 节
  1. CSS 声明验证输入(API v2, 原生0.3.2)
  2. 选择器分析和特性( API v3)
  3. CSS 价值背景
  4. 共享公用事业
  5. 源格式

@ css/ 本地语

用于XCSS解析,分析和范围CSS生成的原生节点.js绑定. 消费者不需要安装Rust或Sass;平台包提供二进制.

语言服务还可以对照 XCSS 类检查 TypeScript 消费者 和变种组。 启用它 setTypescriptProject('tsconfig.json') 财务报告和审定财务报表 与项目相关的TS/配置/依赖源 setTypescriptFile。 。 。 . 读取诊断 document(path)见 项目投入合同。 。 。 . 嵌入式 tsrs 检查器和 TypeScript 标准库由 包含 TSRS-LICENSE 财务报告和审定财务报表 TSRS-NOTICE 文档.

import { Compiler, inspect } from '@cross-css/native'
const compiler = new Compiler()
compiler.setFile('button.xcss', 1, '.button { padding: --space * 2; }')
const result = compiler.compile('button.xcss')
if (!result.success) throw new Error(JSON.stringify(result.diagnostics))
const artifact = result.artifacts.find(item => item.moduleId === 'button.xcss')
console.log(artifact.css, artifact.classes, artifact.sourceMap)

使用规范化,与项目相适应的模块ID并增加修改. 文件更新 复用其他剖面树. removeFile(id, revision) 保留删除修改 因此 Stale 更新无法重现文件 。 主机适配器加载文件和解析 导入; 本地编译器不执行文件系统访问.

inspect(source).imports 返回注入/组合规格。 供应 setResolution(importer, specifier, targetOrNull) 每一个。 所有工程文件 应装入以支持全球独特的注射分辨率.

compile(entry, minify?, bundle?) 回报成功 文物 诊断. 默认的文物是每个模块的 CSS 有类映射,自定义属性 名称、原始来源地图、本地导入、组成样式表依赖性、, 和源的依赖。 Bundling只结合了组成依赖和 将其资产重新定位为条目。 注入依赖性有助于定义 只有这个 诊断具有稳定的编码、严重程度、模块ID、字节间距、相关 地点和单机UTF-16线/列位置。 错误不返回文物 .

index.d.ts 生成自土建时的 assi-r 绑定元数据.

编辑查询

0.3.0版本也出口 LanguageService 财务报告和审定财务报表 languageServiceCapabilities()。 。 。 . 服务接受与模拟更新相同的版本 Compiler,带有文件 作为身份支持的URI. document(uri) 返回诊断和语义 标志; definition, (中文(简体) ), references,以及 hover 接受基于零的UTF-16位置. 这些API不编译CSS或读取文件. 见仓库的 语文服务合同。 。 。 .

CSS 声明验证输入(API v2, 原生0.3.2)

LanguageService.cssDeclarations(uri) 返回时 { revision, declarations } 从 与其他编辑器查询相同的分析快照,而不汇编 CSS. 每一份宣言载有: property, (中文(简体) ), propertyRange, (中文(简体) ), valueRange, (中文(简体) ), context, (中文(简体) ), checkable,并订购 parts。区域是零基UTF-16位置 原出处. 上下文是样式表、规则、注入、键框或规则. 每个部分包含一个 range 或为文字 text 或已解决 valueType· ; 另一字段则不存在。 字面空白、 空白、 注释和 CSS 函数 语法保留。 已解析参数并声明自定义属性引用 使用现有分析器的类型,从不初始化或呼叫站点参数. 具有已知分析结果类型的算术作为单打部分被曝光.

未知的参考文献、本地 var ()、 恢复区域、 过渡组和其他 不支持的转换使值无法检查; 属性名称保留 可用。 关于无法核实的申报的部分不完整,不得 验证。 中央统计局指令、可变登记和直接申报 规则机构不包括在内。 嵌入规则的有条件块继承其声明上下文. 守规矩的规矩 符合资格。 消费者可取代具有代表性的CSS值来取而代之; 这是一个广泛的兼容性检查,而不是该类型所有值的证明. 对任何文件或分辨率的更改使快照修订无效 .

选择器分析和特性( API v3)

LanguageService.selectors(uri) 返回时 { revision, selectors } 无 编译 CSS. 每个选取者列表成员都有其最初的UTF-16 range, (中文(简体) ), 不重叠 parts (单位:千美元)kind, (中文(简体) ), range)),其中任何一种 specificity (单位:千美元)ids, (中文(简体) ), classes, (中文(简体) ), types或解释性说明 reason 当一个精确 分数没有。 比较特异性 Tuples 从词典上,从来没有像 十进制数字。 这是选择器的特异性,不是全级优先级.

分类包括类,ID,标记,属性名,伪类, 伪元素,通用选择器,筑巢,梳理器,和命名空间前缀. 属性字符串和数字保持语法突出. 功能假名 包括冒号前缀,而其选择参数有独立的部分. 现有的8个语义符号指数是稳定的; API v3 附加 selectorId, (中文(简体) ), selectorTag, (中文(简体) ), selectorAttribute, (中文(简体) ), pseudoClass, (中文(简体) ), pseudoElement, (中文(简体) ), selectorUniversal, (中文(简体) ), selectorNesting, (中文(简体) ), selectorCombinator,以及 selectorNamespace。不再使用身份证 variable。 。 。 .

具体情况如下 MDN 数据 和相关的CSS规格:零重量 :where(),最大参数 页:1 :is(), (中文(简体) ), :not(),以及 :has(),nth-孩子选择器过滤器, 阴影 DOM 选择器 遗留的伪元素 和隐性/显性筑巢. 父母名单贡献了最大TUPL;重复 & 多次捐款. 预算外 :local 财务报告和审定财务报表 :global 包装是透明的。 范围重命名 不改变特性。 规则边界不增加具体性 :scope 算作伪类。 关键框架步骤被排除在外.

无效/ 回收的选取者, 不支持的功能选择者, 未解决的家长, 和注射定义中的选择者,其呼叫地点上下文未知者 没有确切的分数。 其他有效的选择者名单成员仍然可以查询。 这个 API 是 不扩展注射呼叫或提供插入阈值或编辑器徘徊UI.

CSS 价值背景

LanguageService.cssValues(uri) 返回时 { revision, values } 原始来源 秩序。 秩序。 每个值都有 text,一个UTF-16 range,可选CSS property, (中文(简体) ), 验证 parts 财务报告和审定财务报表 checkable 状态和函数名称及其精确度 源范围。 数值包括申报、常数和可变初始化器, 和参数默认值。 不包括原始实体;字符串和 URL 内容不包含 生成函数点。 类型代表只描述 XCSS 符号 和算术子表达式,保存周围的 CSS 用于主机验证.

语义传说附件 cssFunction, (中文(简体) ), cssKeyword,以及 cssColor编辑器 适配器使用 CSS 语法对 CSS 值进行分类,并将这些符号与 当地标志,优先。 早期的所有指数都稳定.

共享公用事业

Compiler.compile(entry) 返回可选选项 utilities 工艺品与 模块文物。 它包含 css, (中文(简体) ), sourceMap, (中文(简体) ), sourceDependencies,并绘制 rules。主机应同时提供消费模块的CSS. Compiler.compileUtilities(entries) 返回为 多个条目模块。 在源更新或清除后重算结合. 组合编译包括模块文物中直接使用的CSS.

源格式

formatSource(source, options?) 格式 XCSS 不编译 CSS, 解析 导入,或读取文件。 它回来了 { text, diagnostics }数字 : text 缺席 当语法无效时,原始来源必须保持不变。 语义 未解决的引用等错误不妨碍格式化。 诊断范围 是原始输入中基于零的UTF-16位置.

选项是 tabWidth (1–16,默认 2), useTabs (默认为假), printWidth (1-1000,默认80)和 endOfLine (单位:千美元)lf 或者说 crlf默认值 lf) (中文(简体) ). 格式化为非空输出添加了最后的新行. @raw 条约机构和 节点前 /* prettier-ignore */ 仍作逐字记录,即使其行 结尾与请求的布局不同。 未知规则仍然不透明.

鲁斯特API是 xcss_format::format(source, &FormatOptions)预览 使用Malva的基于Raffia的CSS打印机和XCSS文档打印机. CSS 黄金 固定装置被钉入Pretier 3.6.2;详尽的Pretier等同不是 保证。 XCSS头和表达式使用相容的布局常规. 不透明碎片有意保留其原始拼写 保存的字节换字节。 此发行中没有 CLI 格式化命令 .

版本与发布记录

@cross-css/native 共发布 16 个版本,首次发布于 2026/10/19;过去 12 个月发布了 16 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.9.0latest2026/11/091 天前
0.8.12026/11/091 天前
0.8.02026/11/091 天前
0.7.22026/11/073 天前
0.7.12026/11/064 天前
0.6.02026/11/037 天前

关于 @cross-css/native 的常见问题

@cross-css/native 是什么?

XCSS 编译器的原生节点. js 绑定

如何安装 @cross-css/native?

在项目目录运行 npm install @cross-css/native,或使用 pnpm add / yarn add / bun add。

@cross-css/native 支持 TypeScript 吗?

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

@cross-css/native 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@cross-css/native 需要什么版本的 Node.js?

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

@cross-css/native 可以商用吗?

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

@cross-css/native 的下载量有多少?

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

@cross-css/native 还在维护吗?

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