@fluent/dedent

中文文档
0.5.0发布于 2023/03/13Apache-2.0TypeScriptESM + CJS零依赖近 30 天下载 4168

A template literal tag for dedenting Fluent code

原始使用文档

@fluent/dedent

@fluent/dedent provides a template literal tag to dedent Fluent code. It's part of Project Fluent.

Fluent Syntax is indentation-sensitive, and @fluent/dedent offers a convenient way to include Fluent snippets in source code keeping the current level of indentation and without compromising the readability.

Installation

@fluent/dedent can be used both on the client-side and the server-side. You can install it from the npm registry or use it as a standalone script (as the FluentDedent global).

npm install @fluent/dedent

How to use

@fluent/dedent's default export is meant to be used as a template literal tag. By convention, the tag is often called ftl.

import ftl from "@fluent/dedent";

let messages = ftl`
    hello = Hello, world!
    welcome = Welcome, {$userName}!
    `;

The position of the closing backtick defines how much indent will be removed from each line of the content. If the indentation is not sufficient in any of the non-blank lines of the content, a RangeError is thrown.

import ftl from "@fluent/dedent";

let messages = ftl`
    hello = Hello, world!
  welcome = Welcome, {$userName}!
    `;

// → RangeError("Insufficient indentation in line 2.")

Content must start on a new line and must end on a line of its own. The closing delimiter must appear on a new line. The first and the last line of the input will be removed from the output. If any of them contains non-whitespace characters, a RangeError is thrown.

import ftl from "@fluent/dedent";

let message1 = "hello = Hello, world!";
let message2 = ftl`
    hello = Hello, world!
    `;

assert(message1 === message2);

If you wish to include the leading or trailing line breaks in the output, put extra blank lines in the input.

import ftl from "@fluent/dedent";

let message = ftl`

    hello = Hello, world!

    `;

assert(message === "\nhello = Hello, world!\n");

版本与发布记录

@fluent/dedent 共发布 5 个版本,首次发布于 2019/05/23;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.5.0latest2023/03/133 年前
0.4.02021/09/135 年前
0.3.02020/07/036 年前
0.2.02020/03/026 年前
0.1.02019/05/237 年前

关于 @fluent/dedent 的常见问题

@fluent/dedent 是什么?

A template literal tag for dedenting Fluent code

如何安装 @fluent/dedent?

在项目目录运行 npm install @fluent/dedent,或使用 pnpm add / yarn add / bun add。

@fluent/dedent 支持 TypeScript 吗?

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

@fluent/dedent 支持 ESM 还是 CommonJS?

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

@fluent/dedent 需要什么版本的 Node.js?

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

@fluent/dedent 可以商用吗?

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

@fluent/dedent 的下载量有多少?

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

@fluent/dedent 还在维护吗?

最新版本 0.5.0 发布于 2023/03/13(3 年前);至今共发布 5 个版本,其中过去 12 个月发布了 0 个;首次发布于 2019/05/23。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。