5 个你没有使用但应该使用的被低估的 NPM 软件包

NPM 世界非常广阔。有超过 200 万个软件包可用,因此很容易被大牌软件包(React、Lodash、Express)所吸引,而错过一些真正被低估的精华软件包,而这些精华软件包可以让你作为开发人员的生活变得轻松很多。

**1.日期-fns-tz**

轻松解决时区问题

时区是最糟糕的。跨时区解析和格式化日期很快就会变成一场噩梦。虽然像“moment-timezone”这样的库很受欢迎,但它们往往臃肿且过时。输入“date-fns-tz”。

为什么被低估:

  • 轻量级并且基于 date-fns 构建。
  • 专注于时区管理,而不是一切事物。
  • 现代、可摇动且非常适合模块化项目。
  • 用例:

    您正在构建一个应用程序,为不同时区的用户安排活动。

    例子:

    `从'date-fns-tz'导入{formatInTimeZone};

    const timeZone = '美国/纽约';

    const 日期 = 新日期();

    const formattedDate = formatInTimeZone(date, timeZone, 'yyyy-MM-dd HH:mm:ssXXX');

    console.log(formattedDate); // 2024-11-25 10:00:00-05:00`

    **2. clsx**

    管理动态类名的更智能方法

    如果您曾经在 React 中编写过复杂的 `className` 逻辑,您就会知道它会变得多么混乱。`clsx` 是一个微小的实用程序,可将条件类名简化为干净、可读的代码。

    为什么被低估:

  • 将条件逻辑、数组和对象组合成一个实用程序。
  • 自动处理假值 - 类字符串中不再有未定义或空值。
  • 非常适合动态 UI。
  • 用例:

    管理 React 中按钮、模式或表单的多个类条件。

    例子:

    `从‘clsx’导入 clsx;

    const isActive = true;

    const isDisabled = false;

    const buttonClass = clsx('btn', { 'btn-active': isActive, 'btn-disabled': isDisabled });

    console.log(按钮类);//“btn btn-active”`

    **3. 哎哟**

    运行更强大、更易读的输入验证

    输入验证经常感觉像样板代码——必要,但重复且乏味。Sindre Sorhus(许多伟大的 NPM 工具的创建者)的 `ow` 使输入验证具有声明性和可读性。

    为什么被低估:

  • 对 TypeScript 友好,具有详细的错误消息。
  • 表达语法以达到更清晰的代码。
  • 处理无需外部依赖的复杂验证。
  • 用例:

    验证 API 响应、CLI 输入或函数参数。

    例子:

    `从‘ow’导入ow;

    const verifyUser = (用户) => {

    ow(用户,ow.对象.exactShape({

    名称:ow.string.minLength(3),

    年龄:ow.number.integer.positive,

    电子邮件:ow.string.url,

    }));

    };

    validUser({ name: 'John', age: 25, email: 'example@example.com' }); // 通过`

    **4. npm 检查**

    控制你的依赖关系

    有没有想过你的项目的依赖项是否已经过期或者是否有可以删除的东西?`npm-check` 就像是你的 `node_modules` 的 Marie Kondo。

    为什么被低估:

  • 检查过时、未使用或缺失的依赖项。
  • 交互式 CLI 允许您直接更新或卸载软件包。
  • 适用于全局和本地包。
  • 用例:

    无需人工检查即可保持项目依赖关系清洁且最新。

    例子:

    `npx npm-check`

    运行此命令,它将为您提供一个交互式依赖项列表,其中包含更新或删除它们的选项。

    **5. 对数符号**

    用最少的努力获得更好的 CLI 反馈

    正在构建 CLI 工具或脚本?使用“log-symbols”让您的日志更加直观。它会将平台友好的图标(复选标记、叉号、警告)添加到您的终端输出中。

    为什么被低估:

  • 使终端输出在视觉上更具吸引力并且更易于理解。
  • 轻量且可定制。= 适用于任何平台 - macOS、Linux、Windows。
  • 用例:

    向自定义 CLI 工具或部署脚本添加视觉反馈。

    例子:

    `从‘log-symbols’导入logSymbols;

    console.log(logSymbols.success, '构建成功完成!');

    console.log(logSymbols.error, '无法连接数据库。');

    console.log(logSymbols.warning, '使用默认配置。');`

    NPM 的功能比常见的要多。

    下次您发现自己陷入重复任务或寻找更智能的方法来处理某件事时,请深入研究 NPM 生态系统中鲜为人知的角落。

    您最喜欢的被低估的 NPM 包有哪些?