# 一、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

# 在其他目录下创建一个从全局模块路径到项目模块路径的 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 回调
更新时间: 2023/07/26 星期三 12:02:31