@barefootjs/jinja

中文文档
0.41.0发布于 2026/11/10MITTypeScriptES Module构建来源已验证近 30 天下载 1705

Python BarefootJS的Jinja2适配器——将IR编译为.jinja模板并发运Python BarefootJS渲染运行时间;运行在任何Python网络框架下(Flask等)

中文使用文档
文档目录3 节
  1. 模板输出形状
  2. Python 运行时间
  3. 使用量

@barefootjs/真贾

赤脚JS的Jinja2适配器:编译赤脚JS IR(JSX → IR,参见: spec/compiler.md改为: .jinja 模板文件加客户端 JS 捆绑 每个其它适配器都会产生 Python 渲染运行时间 (单位:千美元)python/barefootjs/)使这些模板通过平面 jinja2.Environment - 不需要任何框架(弗拉斯克、强戈、赤裸裸的瓦斯格派, 以同样的方式工作).

近机械港口 @barefootjs/xslate (案文:Xslate/Kolon) 适配器),为通贾2语法. 见 src/adapter/jinja-adapter.ts标题 关于完整的Kolon-Jinja语法图表和JS/Python的评论 语义差异 此端口处理一致( 真实性, 字符串、保留字标识符 由于金佳没有羊肉,只限高订单召回 表达式).

模板输出形状

  • name: 'jinja', (中文(简体) ), extension: '.jinja', (中文(简体) ), templatesPerComponent: true —— 说 一个 .jinja 每个组件的文件, 由蛇定义 PascalCase 命名 组件名称 (UserCard → user_card.jinja) (中文(简体) ).
  • 水分标记(bf-s, (中文(简体) ), bf-h编号 :bf-m编号 :bf-r, (中文(简体) ), bf-p时段/条件 注释标记, 循环边界注释) 使用 SAME 运行时法 每个适配器的名称 bf.* 电话(bf.scope_attr(), (中文(简体) ), bf.hydration_attrs(), (中文(简体) ), bf.text_start编号 :text_end, (中文(简体) ), bf.comment(...), (中文(简体) ), ...)——见: spec/template-helpers.md 共享帮助合同.
  • 可能非字符串值的每个文本/属性插值都是 路径通过 bf.string(...) (或 bf.bool_str(...) 页:1 布尔形状值; 每个非比较条件位置是 路径通过 bf.truthy(...)两者都是纯Python-runtime的助手—— 见下面的 Python 运行时间指针.

Python 运行时间

python/barefootjs/ 是一个自成一体的 Python 软件包(只依赖 : jinja2实施引擎不可知性 bf 每个已发射对象 模板调用到:水分标记、上下文传播 (单位:千美元)provide_context编号 :use_context),儿童组件渲染 (单位:千美元)render_child),脚本注册,以及JS相容的帮助者 图书馆(string, (中文(简体) ), bool_str, (中文(简体) ), truthy, (中文(简体) ), number, (中文(简体) ), floor编号 :ceil编号 :round, (中文(简体) ), 数组/字符串助手 *_eval 评估人员, spread_attrs, (中文(简体) ), query(中文(简体) ). 它反映了 packages/adapter-perl/lib/ (单位:千美元) 发动机不可知核外加一薄的每引擎后端)——参见 spec/template-helpers.md 对于语义合同,每个帮助者必须 满足,以及包件本身的测试 python/tests/。 。 。 .

使用量

// vite.config.ts
import { defineConfig } from 'vite'
import { barefoot } from '@barefootjs/jinja/vite'

export default defineConfig({
  plugins: barefoot({
    components: ['./src/components'],
    templates: './dist/templates',
  }),
})

vite build 然后发射 .jinja 模板 + 客户 templates 编号 : 维特自己的 build.outDirA级 Python 主机通过构建 jinja2.Environment (与 autoescape=True, (中文(简体) ), undefined=barefootjs.JsUndefined, (中文(简体) ), trim_blocks=True, (中文(简体) ), lstrip_blocks=True ——参见适配器头注释 为何需要最后两个) FileSystemLoader 指针 已发射的模板,线程 barefootjs.backend_jinja 作为提交文件 后端 . JinjaBackend(paths=[...]) 环境正是如此.

联合来文 undefined 财务报告和审定财务报表 null 是两个值: 主机 None 联合来文 null,以及 barefootjs.UNDEF 联合国 JsUndefined联合来文 undefined。留下一个道具 未设置, 省略其密钥( 省略道具取去其结构默认值, 或 读作 undefined; 通过 UNDEF 用于存在和 undefined。一个道具作为 None 实值 null:其默认不适用.

版本与发布记录

@barefootjs/jinja 共发布 79 个版本,首次发布于 2026/07/07;过去 12 个月发布了 79 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.41.0latest2026/11/10今天
0.40.22026/11/027 天前
0.40.12026/10/2911 天前
0.40.02026/10/2614 天前
0.39.92026/10/2515 天前
0.39.82026/10/2119 天前

关于 @barefootjs/jinja 的常见问题

@barefootjs/jinja 是什么?

Python BarefootJS的Jinja2适配器——将IR编译为.jinja模板并发运Python BarefootJS渲染运行时间;运行在任何Python网络框架下(Flask等)

如何安装 @barefootjs/jinja?

在项目目录运行 npm install @barefootjs/jinja,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@barefootjs/jsx(>=0.2.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@barefootjs/jinja 支持 TypeScript 吗?

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

@barefootjs/jinja 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@barefootjs/jinja 可以商用吗?

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

@barefootjs/jinja 的下载量有多少?

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

@barefootjs/jinja 还在维护吗?

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