@civictheme/drupal-attribute

中文文档
2.1.0发布于 2026/10/31Apache-2.0TypeScriptESM + CJS零依赖近 30 天下载 3348

在 JavaScript 中模拟 Drupal 属性 .

中文使用文档
文档目录11 节
  1. 使用树枝.js
  2. 先决条件
  3. 安装
  4. 使用量
  5. 构建测试套件
  6. 执行测试套件
  7. 建造主要文物
  8. 释放
  9. 撰写和执行测试
  10. 捐款
  11. 许可证

drupal 属性

NPM version

这是叉子 drupal 属性 以 埃里克·莫兰德,由 公民主题原执行的所有功劳都属于上游作者.

这不是 drupal 属性。这是 项目 后面 drupal 属性。 。 。 .

使用树枝.js

createAttribute() 是Twig-facing的入口,相当于德鲁帕尔的 create_attribute()用树枝来注册:

import Twig from 'twig';
import { createAttribute } from '@civictheme/drupal-attribute';

Twig.extendFunction('create_attribute', createAttribute);

twig.js 戳出每个对象的文字 从模板中编译的自有, 可假设 _keys 数组记录作者的密钥顺序. 收藏来自 此软件包从不制作,无论你建造它与 createAttribute(), (中文(简体) ), 构造器,或 setAttribute() - 所以没有消费者需要剥去它.

什麽 createAttribute() 添加是命令 。 这个 create_attribute 运输商 drupal-twig-extensions 绘制地图 Object.keys()中返回 错误的顺序——像整数的键向前悬挂,并有树枝. js 表达式 堆栈指定其他不正确 :

<button{{ create_attribute({'data-slider-previous': '', 'class': 'btn'}) }}></button>
<!-- drupal-twig-extensions -->
<button class="btn" data-slider-previous=""></button>

<!-- createAttribute -->
<button data-slider-previous="" class="btn"></button>

createAttribute() 读取 _keys 因此输出匹配什么 德鲁帕尔的 PHP Attribute 用于同一模板。 无带的物体 _keys - 从渲染语境中达到功能的任何东西,而不是 从模板字面上 —— 保留自己的点数顺序 .

上游跟踪与 drupal-twig-延伸号# 1。 。 。 . 请注意: addDrupalExtensions(Twig) 运行每个编译的 Twig 模块导入 并重新登记自身的实施,因此取决于模块评价顺序 您可能需要通过一个包装簿而不是在启动时一次性注册 :

const extendFunction = Twig.extendFunction.bind(Twig);

Twig.extendFunction = (name, definition) =>
  extendFunction(name, name === 'create_attribute' ? createAttribute : definition);

Twig.extendFunction('create_attribute', createAttribute);

先决条件

  • 20及以上节点
  • 滚动 全球安装

还建议在全球安装下列工具,以方便编写测试和跟踪编码覆盖范围:

安装

项目可以通过运行以下命令来安装:

npm install

使用量

构建测试套件

npm run build:test

此命令将测试套件输出到目录 src/test/target。 。 。 .

执行测试套件

测试套件可以通过运行以下命令来执行:

node src/test/target/index.mjs

或者,为了方便:

npm t

建造主要文物

主要文物可通过以下运行命令来建造: artifact

npm run build:main

此命令将主要文物输出到目录 src/main/target,在版本下 SNAPSHOT。 。 。 .

该版本可通过充入 VERSION 因此,环境变量:

VERSION=1.2.3 npm run build:main

释放

npm 出版需要一个交互式的 OTP , 现在代号不再绕行 2FA,所以释放从维护机运行而不是CI:

git checkout main
git pull
npm ci
npm run lint
npm run typecheck
npm test
npm version minor -m "Released version v%s."   # or patch / major
npm publish --access public --tag latest
git push origin main --follow-tags
gh release create vX.Y.Z --title vX.Y.Z --notes-file RELEASE-NOTES-X.Y.Z.md

撰写和执行测试

假设要执行位于 src/test/foo/bar.ts,一个会运行:

tsx src/test/foo/bar.ts

甚至有可能----并建议----在写作测试时跟踪覆盖范围:

odz tsx src/test/foo/bar.ts

当然,也完全有可能 将测试结果 管道到你最喜欢的自带物:

src/test/foo$ tsx bar.ts | tap-nyan
 9   -_-_-_-_-_,------,
 0   -_-_-_-_-_|   /\_/\ 
 0   -_-_-_-_-^|__( ^ .^) 
     -_-_-_-_-  ""  "" 
  Pass!

捐款

  • 叉头 此寄存器
  • 代码
  • 使用 磁带
  • 发出拉动请求,同时铭记所有拉动请求必须在问题队列中提及一个问题

许可证

阿帕奇-2.0 © 埃里克·莫兰德

由 CivilTheme 贡献者修改了原始项目的文件 自2025年以来。 请参看承诺历史中关于变化的全部列表.

版本与发布记录

@civictheme/drupal-attribute 共发布 3 个版本,首次发布于 2026/08/04;过去 12 个月发布了 3 个版本。

版本发布日期距今
2.1.0latest2026/10/319 天前
2.0.12026/08/043 个月前
2.0.02026/08/043 个月前

关于 @civictheme/drupal-attribute 的常见问题

@civictheme/drupal-attribute 是什么?

在 JavaScript 中模拟 Drupal 属性 .

如何安装 @civictheme/drupal-attribute?

在项目目录运行 npm install @civictheme/drupal-attribute,或使用 pnpm add / yarn add / bun add。

@civictheme/drupal-attribute 支持 TypeScript 吗?

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

@civictheme/drupal-attribute 支持 ESM 还是 CommonJS?

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

@civictheme/drupal-attribute 需要什么版本的 Node.js?

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

@civictheme/drupal-attribute 可以商用吗?

@civictheme/drupal-attribute 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@civictheme/drupal-attribute 的下载量有多少?

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

@civictheme/drupal-attribute 还在维护吗?

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