@enonic/js-utils

中文文档
2.1.0发布于 2026/08/25Apache-2.0TypeScriptESM + CJS零依赖构建来源已验证近 30 天下载 3858

Enonic XP JavaScript Utils 软件

中文使用文档
文档目录6 节
  1. 更改日志
  2. 1.11 联合国
  3. 实例
  4. DSL 服务器
  5. 过滤器
  6. 释放

Java脚本公用事业

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

  • 类型标记
  • 描述
  • 日记

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

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

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

  • 反应

更改日志

1.11 联合国

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

新函数 :

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

实例

DSL 服务器

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
        ]
    }
};
*/

过滤器

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 共发布 115 个版本,首次发布于 2021/08/30;过去 12 个月发布了 7 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
2.1.0latest2026/08/252 个月前
1.12.02026/08/142 个月前
1.11.02026/07/074 个月前
2.0.02026/06/125 个月前
2.0.0-rc.1beta2026/06/085 个月前
2.0.0-beta.12026/05/195 个月前

关于 @enonic/js-utils 的常见问题

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