Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/linbudu599/nodejs-trainee-homework
阿里巴巴前端练习生-NodeJS方向第一讲 课后作业代码参考仓库
https://github.com/linbudu599/nodejs-trainee-homework
Last synced: 10 days ago
JSON representation
阿里巴巴前端练习生-NodeJS方向第一讲 课后作业代码参考仓库
- Host: GitHub
- URL: https://github.com/linbudu599/nodejs-trainee-homework
- Owner: linbudu599
- License: mit
- Created: 2020-12-15T07:17:54.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2023-02-10T22:41:36.000Z (over 1 year ago)
- Last Synced: 2024-10-11T14:10:46.476Z (27 days ago)
- Language: JavaScript
- Size: 36.1 KB
- Stars: 7
- Watchers: 2
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# nodejs-trainee-homework
阿里巴巴前端练习生-NodeJS 方向第一讲 课后作业代码参考仓库
## 代码中使用到的 npm 包
- [inquirer](https://www.npmjs.com/package/inquirer) 用于命令行交互,参考 Vue-CLI 的创建项目过程
- [chalk](https://www.npmjs.com/package/chalk) 改变命令行输出的颜色
- [boxen](https://www.npmjs.com/package/boxen) 在命令行打印盒子
- [ora](https://www.npmjs.com/package/ora) 命令行的加载指示
- [minimist](https://www.npmjs.com/package/minimist) 解析命令行参数,如`vue create`命令
- [cli-table](https://www.npmjs.com/package/cli-table) 在命令行打印表格> 关于Node.JS内置模块的使用,请参考[官方文档](http://nodejs.cn/api/)
## 第一节
见 [work-1.js](work-1.js)
本节涉及:
- `inquirer`的输入、列表选择、密码、确认 能力
- 使用`chalk`改变输出文字颜色
- 使用`boxen`在命令行打印盒子## 第二节
见 [work-2.js](work-2.js)
本节涉及:
- 使用`inquirer`,下一个出现的问题由上一个问题的答案决定
- 使用`ora`指示操作进度
- 使用`path`模块:解析路径
- 使用`fs`模块:查看文件夹是否存在、创建文件夹、创建并写入内容到文件## 第三节
见 [work-3](work-3/)
在开始前,首先运行`npm link`命令,这个命令能够将本地文件链接到系统路径中,使你能够在命令行调试自己的 npm 包。
> 如果执行`npm link`的过程中报错了,请删除`node_modules`,然后使用npm或者yarn进行安装。
在`package.json`中:
```json
{
"bin": {
"note": "./work-3/bin/note"
}
}
```在执行此命令后,你就可以在命令行通过`note `的方式来执行相关文件,你也可以把这个命令换成任意你喜欢的,如:
```json
{
"bin": {
"xxx": "./work-3/bin/note"
}
}
```已支持的命令:
- `note create`: 创建新备忘,包括 标题-用户-类型-截止时间,并写入到文件夹`/work3/notes`中,文件以创建时的时间戳进行命名
- `note list`:读取所有的备忘,并以表格方式呈现
- `note clean`:删除所有的备忘录(需要经过确认)你可以根据自己的兴趣扩展更多命令和功能,如:
- 自动扫描`work-3`下的文件来取得支持的命令
- 备忘的完成状态`status`和编号`id`,更多备忘类型`type`,备忘描述等
- `note version` 查看记事本的版本号
- `note finish ` 完成备忘
- `note remove ` 删除备忘
- `note create`时, 支持根据当前日期计算截止日期, 如一周后
- `note list --user linbudu --type learning` 只展示由`linbudu`创建,类型为`learning`的备忘,你也可以使用[commander](https://www.npmjs.com/package/commander)或其他类似工具进行实现
- `note ddl 1d` 列出到期时间在 1 天内的备忘,可以使用 [ms](https://github.com/vercel/ms) 来进行类似`1d`这样时间的处理
- `note list` 展示所有备忘的完成状态与逾期状态当然,你也可以把它发布在 npm 仓库里,然后邀请你的朋友们来使用,并根据他们的意见不断完善~
**如果你有什么问题,可以在钉钉群里和大家讨论,我也会在群里答疑,感谢你参加前端练习生~**