# 一、github 提交规范
类型 | emji | 描述 |
---|---|---|
feat | ✨ | 引入新功能 |
fix | 🐛 | 修复 bug |
style | 💄 | 更新 UI 样式文按键 |
format | 🥚 | 格式化代码 |
docs | 📝 | 添加/更新文档 |
perf | 👌 | 提高性能/优化 |
init | 🎉 | 初次提交/初始化项目 |
test | ✅ | 增加测试代码 |
refactor | 🎨 | 改进代码结构/代码格式 |
patch | 🚑 | 添加重要补丁 |
file | 📦 | 添加新文件 |
publish | 🚀 | 发布新版本 |
tag | 📌 | 发布新版本 |
config | 🔧 | 修改配置文件 |
git | 🙈 | 添加或修改.gitignore 文件 |
# 二、NPM常用命令
# 常用命令
# 查看 npm 的版本
npm -v
# 查看所有命令
npm help
# OR 查看某条命令的详细帮助
npm help <command>
# 查看各个命令的简单用法
npm -l
# 初始化
npm init
npm list --depth=0
# 配置命令
# 查看 npm 的配置
npm config list -l
# 查看 npm 配置
npm config get init.author.name
# 修改 npm 默认配置
npm config set init.author.name xiaoming
# 删除 npm 指定配置
npm config delete init.author.name
# 别名
c
# 搜素
npm search 搜索词 [-g]
# 别名
find
s
se
# npm ls 查看已安装的模块
# 查看当前项目安装的所有模块
npm ls
# 查看全局安装的所有模块
npm ls -g --depth 0
# 别名
list
la
ll
# npm view 查看模块详细信息
npm view lodash
# 别名
info
show
v
# npm install 模块安装
# 安装最新包
npm install lodash
# 安装指定版本
npm install lodash@4.17.20
# 安装指定版本范围
npm install lodash@">=4.17.1 <4.17.21"
# 通过 git 地址安装
npm install https://github.com/lodash/lodash
# 别名
i add
# 配置项
# 全局依赖
--global -g
# 生产环境依赖 dependencies (默认)
--save -S
# 开发环境依赖 devDependencies
--save-dev -D
# npm uninstall 模块卸载
# 卸载
npm uninstall lodash
# 查看模块
npm ls lodash
# npm update 模块更新
# 查看查看当前是否有过期的模块包
npm outdated
# 更新指定或所有过期的模块包
npm update
# OR
npm update lodash
update 命令只会更新 package-lock.json 文件,不会更新 package.json 文件中模块包的版本号 如需更新版本号,可以使用 npm-check-updates 工具包
# 安装
npm install -g npm-check-updates
# 检查所有依赖包版本
ncu
# 检查指定包版本
ncu axios
# 直接升级所有依赖包版本
ncu -u
# 升级指定包版本
ncu -u axios
# 询问升级依赖包版本
ncu -i
# 升级指定包版本
ncu -i axios
# 指定版本范围
ncu --target minor
# OR
ncu --target patch
# npm link 引用模块
npm 本地包的开发与调试
# 在全局模块路径下中创建 link
npm link
# 在其他目录下创建一个从全局模块路径到项目模块路径的 link
# packageName 是取自包的 package.json 中 name 字段
npm link packageName
# 别名
ln
# 移除模块引用
npm unlink
复制代码
# npm run-script 执行脚本
package.json 文件中的 scripts 字段,可以用于指定脚本命令供 npm 直接调用
npm run-script test
# 别名
run
rum
urn
# 内置预定义命令
在使用内置预定义命令时可以不用添加 run
npm start
npm restart
npm test
npm stop
# 命令串行与并行
# 并行执行 & 同时的平行执行
npm run script1 & npm run script2
# 继发执行 && 前一个任务成功,才执行下一个任务
npm run script1 && npm run script2
# 发布相关命令
# 在 npmjs.com 注册一个用户
npm adduser
# 登录
npm login
# 将当前模块发布到 npmjs.com
npm publish
# 其他命令
# 获取当前项目的 node_modules 路径
npm root
# 获取当前项目的可执行脚本路径(.bin 文件夹的路径)
npm bin
# 清除 npm 缓存 force 强制
npm cache clean --force
# 打开当前项目或者指定模块的文档
npm docs [package-name]
# 别名
home
# 打开当前项目或者指定模块的 GitHub repo
npm repo [package-name]
# 打开当前项目或者指定模块的 GitHub issues
npm bugs [package-name]
# 别名
issues
# 移除无关的模块(package.json 中没有的)
npm prune
# 锁定当前项目的依赖模块的版本
npm shrinkwrap
# 三、HTTP 常用请求头
参考回答:
协议头 | 说明 |
---|---|
Accept | 可接受的响应内容类型(Content-Types)。 |
Accept-Charset | 可接受的字符集 |
Accept-Encoding | 可接受的响应内容的编码方式。 |
Accept-Language | 可接受的响应内容语言列表。 |
Accept-Datetime | 可接受的按照时间来表示的响应内容版本 |
Authorization | 用于表示HTTP 协议中需要认证资源的认证信息 |
Cache-Control | 用来指定当前的请求/回复中的,是否使用缓存机制。 |
Connection | 客户端(浏览器)想要优先使用的连接类型 |
Cookie | 由之前服务器通过Set-Cookie(见下文)设置的一个HTTP 协议Cookie |
Content-Length | 以8 进制表示的请求体的长度 |
Content-MD5 | 请求体的内容的二进制MD5 散列值(数字签名),以Base64 编码的结果 |
Content-Type | 请求体的MIME 类型(用于POST 和PUT 请求中) |
Date | 发送该消息的日期和时间(以RFC 7231 中定义的"HTTP 日期"格式来发送) |
Expect | 表示客户端要求服务器做出特定的行为 |
From | 发起此请求的用户的邮件地址 |
Host | 表示服务器的域名以及服务器所监听的端口号。如果所请求的端口是对应的服务的标准端口(80),则端口号可以省略。 |
If-Match | 仅当客户端提供的实体与服务器上对应的实体相匹配时,才进行对应的操作。主要用于像PUT 这样的方法中,仅当从用户上次更新某个资源后,该资源未被修改的情况下,才更新该资源。 |
If-Modified-Since | 允许在对应的资源未被修改的情况下返回304 未修改 |
If-None-Match | 允许在对应的内容未被修改的情况下返回304 未修改( 304 NotModified ),参考超文本传输协议的实体标记 |
If-Range | 如果该实体未被修改过,则向返回所缺少的那一个或多个部分。否则,返回整个新的实体 |
If-Unmodified-Since | 仅当该实体自某个特定时间以来未被修改的情况下,才发送回应。 |
Max-Forwards | 限制该消息可被代理及网关转发的次数。 |
Origin | 发起一个针对跨域资源共享的请求(该请求要求服务器在响应中加入一个Access-Control-Allow-Origin 的消息头,表示访问控制所允许的来源)。 |
Pragma | 与具体的实现相关,这些字段可能在请求/回应链中的任何时候产生。 |
Proxy-Authorization | 用于向代理进行认证的认证信息。 |
Range | 表示请求某个实体的一部分,字节偏移以0 开始。 |
Referer | 表示浏览器所访问的前一个页面,可以认为是之前访问页面的链接将浏览器带到了当前页面。Referer 其实是Referrer 这个单词,但RFC制作标准时给拼错了,后来也就将错就错使用Referer 了。 |
TE | 浏览器预期接受的传输时的编码方式:可使用回应协议头 |
Transfer-Encoding | 中的值(还可以使用"trailers"表示数据传输时的分块方式)用来表示浏览器希望在最后一个大小为0 的块之后还接收到一些额外的字段。 |
User-Agent | 浏览器的身份标识字符串 |
Upgrade | 要求服务器升级到一个高版本协议。 |
Via | 告诉服务器,这个请求是由哪些代理发出的。 |
Warning | 一个一般性的警告,表示在实体内容体中可能存在错误。 |
# 四、node常用包
- ncp模块 文件复制
- execa模块 执行shell脚本
- commander: 提供了用户命令行输入和参数解析的工具
- chalk: 可以实现好看的日志输出
- inquirer: 一个强大的用户与命令行交互的工具
- listr: 可以在命令行中画出进度列表的工具
- ncp: 可以实现跨平台递归拷贝文件
- pkg-install: 可以使用 yarn install 或 npm install 安装依赖
- semver: 专门分析语义化版本的工具
- shelljs:同步的可以执行 shell脚本工具
- execa: 可以衍生一个 shell,传入 command 字符串在该 shell 直接处理的子进程管理工具,支持 promise 回调