【趣味项目】NPM下载量日报
项目地址:GitHub
项目介绍
博主前几天写了几个开源的NPM包,想每天查看自己的NPM包下载量。
但是每次都打开NPM官网再搜索的话就很麻烦,因此做了这个项目,通过定时任务去每日发起请求去查询包的下载量,之后再通过邮件发送博主本人的QQ邮箱
使用方式
本次项目的使用较为繁琐,简述几个步骤。详细的部署指导可私
- git 克隆下源码仓库
- 登录自己的QQ邮箱获取到 IMP/STMP 的授权码
- 再根目录创建一个.env,并设置两个变量
- 然后设置需要监视的NPM包
- 之后运行打包程序
pnpm build:parcel
- 登录自己的云服务器(阿里云、京东云、腾讯云之类的云服务器)
- 设置 linux 的 ssh 认证,详细步骤见此文
- 将 pkg 里面用于上传的地址换成自己的 IP 地址和文件路径
- 连接自己的云服务器,配置 crontab 的定时任务来周期执行 js 脚本
技术选型
- dotenv 用于加载环境变量
- axios 用于发送请求
- nodemailer 用于发送邮件
执行流程
- 检测 env 是否存在
- 加载环境变量
- 检测环境变量中是否存在 USER 和 PWD
- 创建 axios 示例(选择 npmmirror 镜像,官网会出现超时)
- 读取待监视的包数组,用 Promise.all 来保证全部包数据都加载完毕后再进行下一步
- 创建邮件发送器实例
- 设置发送选项
- 通过包数据生成邮件内容
- 发送邮件
结尾说明
不同于之前的两个项目,该项目包含了编码和部署,相对麻烦许多,而且文档也比较难写,但是代码仓库的注释十分翔实。希望能读者能在理解了核心之后部署成功,如果存在疑问都可以私信询问