Skip to content

KarinJS/node-schedule

 
 

Repository files navigation

@karinjs/node-schedule

Important

本项目是 node-schedule 的 fork 版本,专为更小体积和 ESM 兼容性而重构。
说人话就是重新打包了一遍,转成esm。

特性

  • 📦 体积极小:打包后仅 312KB(原版 4.6MB,数据来源
  • 🚀 完全 ESM 支持:使用 Vite 重新打包为 ESM 格式
  • 📝 TypeScript 支持:通过 tsup 自动生成类型声明文件
  • 🛠️ 兼容原版 API,迁移无痛
  • 🔒 仅包含核心功能,去除冗余依赖

环境要求

  • Node.js 版本需 >= 18

安装

你可以使用多种包管理器进行安装:

使用 npm

npm install @karinjs/node-schedule

使用 pnpm

pnpm add @karinjs/node-schedule

使用 yarn

yarn add @karinjs/node-schedule

无缝升级(替换原有 node-schedule)

package.json 中配置依赖别名,或直接通过包管理器命令安装:

{
  "dependencies": {
    "node-schedule": "npm:@karinjs/node-schedule"
  }
}
  • 使用 npm:
npm install node-schedule@npm:@karinjs/node-schedule
  • 使用 pnpm:
pnpm add node-schedule@npm:@karinjs/node-schedule
  • 使用 yarn:
yarn add node-schedule@npm:@karinjs/node-schedule

这样在项目中 import 'node-schedule' 会自动指向本包,无需更改业务代码。

使用示例

import schedule from '@karinjs/node-schedule';

// 每分钟执行一次任务
const job = schedule.scheduleJob('* * * * *', function(){
  console.log('每分钟执行一次');
});

// 取消任务
// job.cancel();

适用场景

  • 对包体积有极致要求的 Serverless、边缘计算、微服务等场景
  • 需要 ESM 支持的现代 Node.js 项目

与原版区别

  • 仅保留核心调度功能,去除部分不常用特性
  • 体积大幅缩小,加载更快
  • 采用 ESM 构建,适配现代 Node.js

许可证

本项目许可证与原版 node-schedule 保持一致,采用 MIT 许可证,内容无任何变化,紧随上游。

MIT License © 2015 Matt Patenaude 及贡献者

About

A cron-like and not-cron-like job scheduler for Node.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 52.1%
  • JavaScript 47.9%