##什么是包
- 由于 Node 是一套轻内核的平台,虽然提供了一系列的内置模块,但是不足以满足开发者的需求,于是乎出现了包(package)的概念:
- 与核心模块类似,就是将一些预先设计好的功能或者说 API 封装到一个文件夹,提供给开发者使用;
##包的加载机制
- id: 包名的情况:require('http')
+ 先在系统核心(优先级最高)的模块中找;
+ 以后不要创建一些和现有的包重名的包;
+ 然后再到当前项目中 node_modules 目录中找;
##NPM 概述
- 随着时间的发展,NPM 出现了两层概念:
+ 一层含义是 Node 的开放式模块登记和管理系统,亦可以说是一个生态圈,一个社区
+ 另一层含义是 Node 默认的模块管理器,是一个命令行下的软件,用来安装和管理 Node 模块。
- 官方链接: https://www.npmjs.com/
- 国内加速镜像: https://npm.taobao.org/
- 可以通过 NRM: Node Registry Manager
##安装 NPM
- NPM 不需要单独安装。默认在安装 Node 的时候,会连带一起安装 NPM。
- 但是,Node 附带的 NPM 可能不是最新版本,最好用下面的命令,更新到最新版本。
`$ npm install npm -g`
- 默认安装到当前系统 Node 所在目录下。
- 由于之前使用 NVM 的方式安装的 Node 所以需要重新配置 NPM 的全局目录
##配置 NPM 的全局目录
- `$ npm config set prefix [pathtonpm]`
- 将 NPM 目录配置到其他目录时,必须将该目录放到环境变量中,否则无法再全局使用
##常用 NPM 命令
- https://docs.npmjs.com/
```bash
npm config [ls|list|set|get] [name] [value]
npm init [--yes|-y]
npm search [name]
npm info [name]
npm install [--global|-g] [name]
npm uninstall [--global|-g] [name]
npm list [--global|-g]
npm outdated [--global|-g]
npm update [--global|-g] [name]
npm run [task]
npm cache [clean]
```
- 简介
- 配置安装
- window
- 基础知识
- Node 命令基本用法
- 进程和线程
- 调试
- 异步、回调
- 全局对象
- 非阻塞 I/O和事件驱动和非阻塞机制
- npm包概念
- 模块化
- 实现require和cache
- 核心模块操作
- fs文件系统操作
- 同步调用和异步调用
- 缓冲区处理(二进制数据)
- 文件读取
- 文件写入
- 例子:读取歌词文件显示
- 文件流
- 例子:文件复制
- 监视文件
- 其他文件操作
- 目录操作
- 例子:递归加载目录树
- path路径操作模块
- 网络操作
- URL 解析模块
- querystring查询字符串模块
- crypto加密解密模块
- Socket
- 例子:聊天室
- coffeescript
- Gulp-自动化构建工具
- Gulp实现前端构建
- Gulp后端构建
- 插件
- gulp-load-plugins 模块化管理插件
- gulp-minify-css 压缩css插件
- gulp-sass 将sass预处理为css
- gulp-less 将less预处理为css
- gulp-sourcemaps 插件
- gulp-concat 合并插件
- gulp-uglify 压缩JS插件
- gulp-util gulp常用工具库插件
- yargs插件
- gulp-nodemon 自动启动/重启插件
- coffee-script 插件
- gulp-coffee插件
- gulp-livereload 网页自动刷新
- Moment.js-处理时间插件
- express 前端框架
- Async-异步流程控制插件
- node-progress进度条插件
- JSHint-代码规范检查工具
- lodash -JavaScript 工具库
- 资料
- 框架所用包
- bodyParser
