# @enonic/js-utils 中文文档

规范地址：https://npmcn.com/package/%40enonic/js-utils/

版本：2\.1\.0
npm 元数据更新时间：2026-09-04T14:13:28.563Z
中文译文更新时间：2026-11-13T17:51:29.675Z
软件包许可：Apache-2\.0

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

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

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

- 包体积（解压后）：4.1 MB，780 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2021-08-30T11:35:28.954Z
- 最新版本发布：2026-08-25T13:57:21.818Z
- 近 30 天下载量：3858（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：115（近 12 个月 7 个）

## 中文简介

Enonic XP JavaScript Utils 软件

## 安装

```sh
npm install @enonic/js-utils
```

也可以使用：`pnpm add @enonic/js-utils`、`yarn add @enonic/js-utils`、`bun add @enonic/js-utils`

## README

# Java脚本公用事业

在一个常数和函数库中,这些常数和函数应在任何

-   类型标记
-   描述
-   日记

其意图是,图书馆不应该依赖任何至少在这些环境中不起作用的节点模块:

-   Enonic XP 服务器侧码( Nashorn/ GraalJS)
-   现代浏览器
-   节点最新 LTS 版本

它至少应在这些框架内发挥作用:

-   反应

## 更改日志

### 1.11 联合国

-   折旧 `forceArray()` 它有几个已知的问题!
-   提供 `noNilsArray()` 它是一个更好的类型安全 替代武力箭头.
-   提供 `filterNils()` 用于删除数组中的零值.
-   提供 `isNotNil()` 类型护卫.
-   执行 [682号](https://github.com/enonic/npm-js-utils/issues/682) 提供功能( 完整文本、 ngram、 生成) , 以正确处理助推值 .
-   错误: STEMMING LANGUAGE CODE 巴西利安从pt-br改为 `pt-BR`。 。 。 .

#### 新函数 :

| 路径 | 说明 |
| --- | --- |
| 阵列/ 过滤器Name | 从数组中删除无效和未定义的值. |
| 阵列/ 无阵列 | 将任意值转换成非无核项目. |
| 存储/征服/全文 | 寻一地中出语. |
| 储存/征服/克克拉姆 | 搜索字段中以字母开头的字段 . |
| 存储/充值/充值 | 在一个字段中搜索源词 . |
| 值/ 非无 | 检查一个值是否不是 `null` 或者说 `undefined`。 。 。 . |

## 实例

### DSL 服务器

```typescript
import { and } from '@enonic/js-utils/storage/query/dsl/and';
import { bool } from '@enonic/js-utils/storage/query/dsl/bool';
import { fulltext } from '@enonic/js-utils/storage/querying/fulltext';
import { ngram } from '@enonic/js-utils/storage/querying/ngram';
import { stemmed } from '@enonic/js-utils/storage/querying/stemmed';

const fields = 'url^1.2,title^1.1,text';
const searchString = 'fun video';
const operator = 'OR';
const query = bool(and(
    fulltext(fields, searchString, operator),
    stemmed(fields, searchString, operator, 'no', 0.9),
    stemmed(fields, searchString, operator, 'en', 0.8),
    ngram(fields, searchString, operator, 0.7)
));
console.debug(JSON.stringify(query, null, 4));

/*
{
    "boolean": {
        "must": [
            // fulltext
            // stemmed_no
            // stemmed_en
            // ngram
        ]
    }
};
*/
```

### 过滤器

```javascript
import { addQueryFilter } from '@enonic/js-utils/storage/query/addQueryFilter';

const filters = addQueryFilter({
    filter: {
        exists: {
            field: 'required'
        }
    }
});
/*{
    boolean: {
        must: {
            exists: {
                field: 'required'
            }
        }
    }
}*/
```

## 释放

-   记得更新上面的更改日志 .

```
git tag vX.Y.Z
git push origin vX.Y.Z
```

这将触发在国家预防机制的发布和发布.

## 常见问题

### @enonic/js-utils 是什么？

Enonic XP JavaScript Utils 软件

### 如何安装 @enonic/js-utils？

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

### @enonic/js-utils 支持 TypeScript 吗？

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

### @enonic/js-utils 支持 ESM 还是 CommonJS？

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

### @enonic/js-utils 可以商用吗？

@enonic/js-utils 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @enonic/js-utils 的下载量有多少？

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

### @enonic/js-utils 还在维护吗？

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

