# @balena/balena-pricing 中文文档

规范地址：https://npmcn.com/package/%40balena/balena-pricing/

版本：2\.0\.72
npm 元数据更新时间：2026-11-07T09:59:01.211Z
中文译文更新时间：2026-11-07T15:40:34.427Z
软件包许可：AGPL-3\.0

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

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

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

- 包体积（解压后）：71.1 kB，13 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=22\.4\.0
- 运行依赖：1 个
- 首次发布：2023-01-14T03:11:25.760Z
- 最新版本发布：2026-11-07T09:59:00.886Z
- 近 30 天下载量：12495（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：256（近 12 个月 160 个）

## 中文简介

Balena定价/节省计算器

## 安装

```sh
npm install @balena/balena-pricing
```

也可以使用：`pnpm add @balena/balena-pricing`、`yarn add @balena/balena-pricing`、`bun add @balena/balena-pricing`

## README

# 巴莱纳定价/保存计算器

这个库提供了一套可以用来计算信用购买成本的功能 和与动态计费相比的节约。 信用定价定义可在 即时性,可用于测试和试验,但用于生产的价格定义 在此套件中也定义了.

## 使用量

```typescript
import { CreditPricing } from '@balena/balena-pricing';

// Format output to dollar currency.
const dollar = Intl.NumberFormat('en-US', {
    style: 'currency',
    currency: 'USD',
});
function toDollar(pennies: number): string {
    return dollar.format(pennies / 100);
}

// Set dynamic base price.
const dynamicPrice = 150;

// Use production credit pricing definitions.
let pricing = new CreditPricing();

// Use production credit pricing definitions.
// Explicitly target current versions (default).
let pricing = new CreditPricing({
    target: 'current',
});

// Use production credit pricing definitions.
// Target most recent versions, even those slated for future use.
pricing = new CreditPricing({
    target: 'latest',
});

// Use production credit pricing parameters.
// Target version 2, will return undefined for features without a version 2.
let pricing = new CreditPricing({
    target: 2,
});

// Use production credit pricing parameters.
// Target most recent versions valid up to a given date.
let pricing = new CreditPricing({
    target: new Date('2023-03-01T00:00:00Z'),
});

// Use custom credit pricing parameters.
// Mostly useful for testing parameters against the curve,
// should not normally be used in production.
pricing = CreditPricing({
    credits: {
        'foo:bar': [
            {
                version: 1,
                validFrom: new Date('2023-02-01T00:00:00Z'),
                basePriceCents: 150,
                firstDiscountPriceCents: 149,
                discountRate: 0.33,
                discountThreshold: 12000,
                discountThresholdPriceCents: 125,
            },
        ],
    },
});

// Get individual credit price
const creditPrice = pricing.getCreditPrice('foo:bar', 0, 1000);
console.log('Credit unit price:', toDollar(creditPrice));

// Get total price for credit purchase
const totalPrice = pricing.getCreditTotalPrice('foo:bar', 0, 1000);
console.log('Credit total price:', toDollar(totalPrice));

// Get discount percentage compared to dynamic
const discount = pricing.getDiscountOverDynamic('foo:bar', 0, 1000, dynamicPrice);
console.log('Discount over dynamic:', `${discount}%`);

// Get total savings for credit purchase compared to dynamic
const totalSavings = pricing.getTotalSavings('foo:bar', 0, 1000, dynamicPrice);
console.log('Total savings:', toDollar(totalSavings));
```

## 常见问题

### @balena/balena-pricing 是什么？

Balena定价/节省计算器

### 如何安装 @balena/balena-pricing？

在项目目录运行 npm install @balena/balena-pricing，或使用 pnpm add / yarn add / bun add。

### @balena/balena-pricing 支持 TypeScript 吗？

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

### @balena/balena-pricing 支持 ESM 还是 CommonJS？

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

### @balena/balena-pricing 需要什么版本的 Node\.js？

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

### @balena/balena-pricing 可以商用吗？

@balena/balena-pricing 使用 AGPL-3\.0 许可。最严格的 Copyleft：除分发外，通过网络向用户提供基于它的服务也需要开源对应源码。闭源 SaaS 使用前务必评估。以上为概括，不构成法律意见，请以许可原文为准。

### @balena/balena-pricing 的下载量有多少？

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

### @balena/balena-pricing 还在维护吗？

最新版本 2\.0\.72 发布于 2026/11/07（今天）；至今共发布 256 个版本，其中过去 12 个月发布了 160 个；首次发布于 2023/01/14。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

