# @barefootjs/jinja 中文文档

规范地址：https://npmcn.com/package/%40barefootjs/jinja/

版本：0\.41\.0
npm 元数据更新时间：2026-11-09T23:00:09.225Z
中文译文更新时间：2026-11-09T23:00:43.423Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40barefootjs/jinja
原文对照：https://npmcn.com/package/%40barefootjs/jinja/?lang=original
项目主页：https://github.com/piconic-ai/barefootjs#readme
源码仓库：https://github.com/piconic-ai/barefootjs

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：20.6 MB，89 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：1 个
- peer 依赖：vite ^6\.0\.0 \|\| ^7\.0\.0 \|\| ^8\.0\.0，@barefootjs/jsx \>=0\.2\.0，@barefootjs/vite \>=0\.2\.0
- 首次发布：2026-07-07T10:52:18.606Z
- 最新版本发布：2026-11-09T23:00:08.856Z
- 近 30 天下载量：1705（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：79（近 12 个月 79 个）

## 中文简介

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

## 安装

```sh
npm install @barefootjs/jinja
```

也可以使用：`pnpm add @barefootjs/jinja`、`yarn add @barefootjs/jinja`、`bun add @barefootjs/jinja`

## README

# @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/`。 。 。 .

## 使用量

```ts
// 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.outDir`A级 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 是什么？

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 和提交记录判断。

