1. JS模块化方面的不足 #

2. CommonJS规范 #

3. Node中的CommonJS #

4. 模块分类 #

4.1 原生模块 #

http path fs util events 编译成二进制,加载速度最快,原来模块通过名称来加载

4.2 文件模块 #

在硬盘的某个位置,加载速度非常慢,文件模块通过名称或路径来加载 文件模块的后缀有三种

4.3 第三方模块 #

4.3.1 . 全局目录 #

window如果在环境变量中设置了NODE_PATH变量,并将变量设置为一个有效的磁盘目录,require在本地找不到此模块时向在此目录下找这个模块。 UNIX操作系统中会从 $HOME/.node_modules $HOME/.node_libraries目录下寻找

4.4 模块的加载策略 #

lookmodule

4.5 文件模块查找规则 #

lookmodule

5. 从模块外部访问模块内的成员 #

6. 模块对象的属性 #

7. 包 #

在Node.js中,可以通过包来对一组具有相互依赖关系的模块进行统一管理,通过包可以把某个独立功能封装起来 每个项目的根目录下面,一般都有一个package.json文件,定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据)。npm install命令根据这个配置文件,自动下载所需的模块,也就是配置项目所需的运行和开发环境

项目 描述
name 项目名称
version 版本号
description 项目描述
keywords: {Array} 关键词,便于用户搜索到我们的项目
homepage 项目url主页
bugs 项目问题反馈的Url或email配置
license 项目许可证
author,contributors 作者和贡献者
main 主文件
bin 项目用到的可执行文件配置
repository 项目代码存放地方
scripts 声明一系列npm脚本指令
dependencies 项目在生产环境中依赖的包
devDependencies 项目在生产环境中依赖的包
peerDependencies 应用运行依赖的宿主包

package.json packagejson

8. NPM #

8.1 npm提供的功能 #

搜索第三方包的地址

https://www.npmjs.com/search

8.2 npm命令 #

8.2.1 (npm install)安装包 #
npm install <package-name>
npm i mime

此命令会从服务器上下载此模块到当前目录下的node_modules目录下,如果node_modules目录不存在则会创建一个

npm i mime@2.x
8.2.2 卸载包 #
npm uninstall <package name>
8.2.3 更新包 #

我们还可以通过以下指令更新已经安装的包

npm update <package name>

8.3 包的安装模式 #

8.3.1 本地安装 #

8.3.2 全局安装 #

npm install <package-name> -g
npm install mime -g
C:\Users\zhufeng\AppData\Roaming\npm\node_modules\mime
npm root -g
C:\Users\Administrator\AppData\Roaming\npm\node_modules
C:\Users\Administrator\AppData\Roaming\npm
npm install babel-cli -g

8.3 注册、登录和发布模块 #

  1. 注册npm账号

npmjs

  1. 登录
npm login
  1. 发布
npm publish

8.4 npx #

8.4.1 调用项目安装的模块 #

npm install -D mocha

一般来说,调用mocha只能在package.json的scripts字段里面使用

"scripts": {
    "test": "mocha -version"
}
npx mocha --version

npx 的原理很简单,就是运行的时候,会到node_modules/.bin路径和环境变量$PATH里面,检查命令是否存在

8.4.2 避免全局安装模块 #

$ npx create-react-app my-react-app

上面代码运行时,npx 将create-react-app下载到一个临时目录,使用以后再删除

8.4.3 --no-install 参数和--ignore-existing 参数 #

9. yarn #

Yarn 是一个依赖管理工具。它能够管理你的代码,并与全世界的开发者分享代码。 代码是通过包(有时也被称为模块)进行共享的。 在每一个包中包含了所有需要共享的代码,另外还定义了一个package.json文件,用来描述这个包。

9.1 初始化一个新的项目 #

yarn init

9.2 添加一个依赖包 #

yarn add [package]
yarn add [package]@[version]
yarn add [package]@[tag]

9.3 更新一个依赖包 #

yarn upgrade [package]
yarn upgrade [package]@[version]
yarn upgrade [package]@[tag]

9.4 删除一个依赖包 #

yarn remove [package]

9.5 安装所有的依赖包 #

yarn

或者

yarn install

参考 #

参考资料 #