@sadikkhan02/notifykit-cli
用于配置的交互式设置向导和非交互式CI工具 NotifyKit 在任何Node.js项目中。
快速入门
在项目根目录下运行向导:
npx @sadikkhan02/notifykit init
向导将引导您完成以下操作:
- 选择通知通道(电子邮件, 短信, 推)
- 选择提供者适配器:
- 电子邮件: 节点邮件(通用SMTP / Mailtrap / Gmail / SES)
- 短信: Twilio(全球覆盖)或MSG91(印度优化,DLT兼容)
- 推动: Firebase云消息(Android, iOS, Web)
- 配置Redis队列连通性(本地、Docker或云)
- 使用掩码密码输入捕获提供者凭据
- 在进行更改之前检查摘要
- 的合并安全写入
.env和.env.example - 只自动安装所选的适配器包和对端sdk
非交互式/ CI/CD使用
对于自动化环境、Docker容器和CI/CD管道,使用 --yes:
# Configure Twilio SMS
npx @sadikkhan02/notifykit init \
--channels=sms \
--sms=twilio \
--twilio-sid=ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
--twilio-token=your_auth_token \
--twilio-from=+1234567890 \
--yes
# Configure Nodemailer Email with dry-run
npx @sadikkhan02/notifykit init \
--channels=email \
--email=nodemailer \
--smtp-host=smtp.mailtrap.io \
--smtp-port=587 \
--smtp-user=my_user \
--smtp-password=my_secret \
--dry-run \
--yes
命令行选项
| 选项 | 类型 | 描述 |
|---|---|---|
-y, --yes | 布尔 | 非交互式地确认操作(在非tty环境中需要) |
--dry-run | 布尔 | 无需修改文件或安装软件包即可预览配置 |
--skip-install | 布尔 | 写 .env 不执行包管理器安装 |
--cwd <path> | 字符串 | 目标目录(默认为 process.cwd()) |
--package-manager <pm> | 字符串 | 武力包经理(npm, pnpm, yarn, bun) |
-h, --help | 布尔 | 显示帮助屏幕 |
-v, --version | 布尔 | 显示版本 |
通道和提供者标志
| 国旗 | 值 | 描述 |
|---|---|---|
--channels | email, sms, push | 要配置的通道的逗号分隔列表 |
--email | nodemailer | 电子邮件提供商选择 |
--sms | twilio, msg91 | 短信提供商选择 |
--push | fcm | 选择推送提供商 |
--redis-url | URL字符串 | Redis连接字符串(默认: redis://localhost:6379) |
提供者凭证标志
- Nodemailer:
--smtp-host,--smtp-port,--smtp-user,--smtp-password,--smtp-from,--smtp-secure - 为什么Twilio:
--twilio-sid,--twilio-token,--twilio-from,--twilio-messaging-service-sid - MSG91:
--msg91-auth-key,--msg91-flow-id,--msg91-sender-id - FCM:
--fcm-service-account,--fcm-project-id
安全与合并安全
- 零秘密泄漏: 敏感的令牌和密码永远不会被记录
stdout,stderr,或终端诊断。 - Merge-Safe
.env更新: 无关变量(如DATABASE_URL或者PORT)、空行和注释100%保留。 - 安全
.env.example代: 中放置示例占位符.env.example而不暴露真实的凭证。 - 防壳注入: 包管理器命令将离散参数数组直接传递给
execa,避免原始shell命令连接。 - 幂等: 重新运行向导将更新现有的NotifyKit键,而不复制部分。
许可证
麻省理工学院