# npm的使用

  • 安装
npm已经在Node.js安装的时候顺带装好了😏
  • 版本检测
npm --version
npm -v
  • 常用命令
- npm 安装全部依赖
- npm shrinkwrap 模块依赖锁定
- npm install 安装模块
- npm uninstall 卸载模块
- npm update 更新模块
- npm outdated 检查模块是否已经过时
- npm ls 查看安装的模块
- npm init 在项目中引导创建一个package.json文件
- npm help 查看某条命令的详细帮助
- npm root 查看包的安装路径
- npm config 管理npm的配置路径
- npm cache 管理模块的缓存
- npm start 启动模块
- npm stop 停止模块
- npm restart 重新启动模块
- npm test 测试模块
- npm version 查看模块版本
- npm view 查看模块的注册信息
- npm access 在发布的包上设置访问级别
- npm package.json的语法
  • install命令的参数(安装gulp为例)
npm install gulp
npm install gulp@3.9.1
npm install gulp -g
npm install gulp --save 或 npm install gulp -S
npm install gulp --save-dev 或 npm install gulp -D
npm install gulp --save-optional 或 npm install gulp -O
npm install gulp --save-exact 或 npm install gulp -E
  • 设置代理
npm config set proxy http://server:port
npm config set https-proxy https://server:port

如果需要认证的话可以这样设置:

npm config set proxy http://username:password@server:port
npm confit set https-proxy https://username:password@server:port

如果代理不支持https的话需要修改npm存放package的网站地址。

npm config set registry "http://registry.npmjs.org/"

取消代理

npm config delete proxy
npm config delete https-proxy
  • 私有包的安装

~/.npmrc文件添加//registry.npmjs.org/:_authToken=YOUR_TOKEN_HERE

# yarn的使用

  • 安装
brew install yarn
  • 版本检测
yarn --version
yarn -v
  • 常用命令
yarn 安装全部依赖
yarn init 初始化新项目
yarn add [package] 添加依赖包
yarn add [package]@[version] 添加依赖包
yarn add [package]@[tag] 添加依赖包
yarn add [package] --dev 将依赖项添加到不同依赖项类别 devDependencies
yarn add [package] --peer 将依赖项添加到不同依赖项类别 peerDependencies
yarn add [package] --optional 将依赖项添加到不同依赖项类别 optionalDependencies
yarn upgrade [package] 升级依赖包
yarn upgrade [package]@[version] 升级依赖包
yarn upgrade [package]@[tag] 升级依赖包
yarn remove [package] 移除依赖包

# npm&yarn源管理

# 设置淘宝源

npm config set registry https://registry.npm.taobao.org
yarn config set registry https://registry.npm.taobao.org

# nrm

nrm(npm registry manager )是npm的镜像源管理工具,使用这个就可以快速地在 npm 源间切换。

github地址 (opens new window)

  • 安装 npm install -g nrm
  • 查看可用地址(*为当前所选源) nrm ls 1598250450341
  • 切换源 nrm use taobao
  • 测速 nrm test npm
  • 增加自定义源(私有源等情况) nrm add registry http://url/
  • 删除自定义源 nrm del <registry>

# 使用过的包或中间件

minimist 解析用户命令,将 process.argv 解析成对象

chalk 让你 console.log 出来的字带颜色,比如成功时的绿色字

inquirer 询问用户并记录反馈结果,界面互动的神器

fs-extra 对 fs 库的扩展,支持 promise

ora 提供 loading 菊花

semver 提供版本比较

figlet console.log出一个漂亮的大logo

open 跨平台打开 app,比如调试的时候开打 chrome

bull 基于Redis的Node队列

Redlock Node基于redis的分布式锁的实现

pino Node.js记录器

pino-http 高速HTTP记录器

nodemon 自动重新启动

cross-env 跨平台设置和使用环境变量的脚本

cors 启用具有各种选项的CORS

compression 压缩中间件

dotenv 环境变量从.env文件加载到中process.env

convict 引入配置方案,config

morgan 日志中间件

commander ``

helmet 安全信息

http-status-codes 枚举HTTP状态代码的常量

concurrently 并行运行命令 concurrently 'a' 'b' 相对于 a && b,一个ab同时执行,一个先a后b

patch-package 修改包内容

postinstall-postinstall yarn 安装patch-package需要同步安装

tsoa OpenAPI 框架

joi

express-rate-limit

express-brute

express-jwt

express-jwt-blacklist

TypeORM

sequelize

mongoose

Knex

Objection.js

waterline

Bcrypt

safe-regex

sandbox

cookie-session

csurf

validate

body-parser

compression

connect-timeout

cookie-parser

errorhandler

express-session

response-time

serve-favicon

serve-index

whost

bunyan

express-gateway

reflect-metadata

log4js

winston

pino

lodash

ramda

day.js

qs 一个 url参数转化 (parse和stringify)的轻量级js库

big.js

file-saver 一个在客户端保存文件的解决方案,非常适合在客户端上生成文件的Web应用程序

js-xlsx 解析和编写excel文件的库

SortableJS 拖拽库

KeyboardJS 一个在浏览器中使用的库(与node.js兼容).它使开发人员可以轻松设置键绑定和使用组合键来设置复杂的绑定.

html2canvas js开发的浏览器网页截图工具

dom-to-image 一个可以将任意DOM节点转换为用JavaScript编写的矢量(SVG)或光栅(PNG或JPEG)图像的库

cropperjs 图片裁切库

iscroll 移动端使用的一款轻量级滚动插件

Typed.js 一个轻松实现打字效果的js插件

fullPage.js 一个可轻易创建全屏滚动网站的js滚动动画库, 兼容性无可替代

Kute.js 一个强大高性能且可扩展的原生JavaScript动画引擎,具有跨浏览器动画的基本功能

GreenSock JS 一个JavaScript动画库

Anime.js 一个JavaScript动画库

Velocity 一个Javascript 动画引擎