在Node中主要经过三个东西实现模块化开发:node
require
.exports
Node中的模块化主要是为了解决JS文件之间的相互依赖关系npm
Node有三部分组成:ECMAScript + 核心API + 第三方包json
const XXX = require("XXX");
复制代码
什么是第三方模块: 除了官方提供的核心模块以外,咱们在平常开发中也许还有一些使用频率很高的功能代码.而这些功能就被一些厉害的团队、我的、公司打包成可复用的模块.并经过NPM官网托管出去,供其余人下载使用.缓存
如何使用第三方模块:bash
**注意:**不管是核心模块仍是第三方模块,都是经过 标识符名称 来引用这个模块的.异步
.
的形式追加属性,也可使用 =
直接赋值的形式导出成员.
的形式追加属性,不能使用 =
直接赋值的形式module.exports
指向的对象为准.module.exports
和exports
.优先从缓存中加载模块化
index -> index.js -> index.json -> index.node
复制代码
node_modules
这个文件夹.node_modules
文件夹中有没和第三方模块名称一致的文件夹.package.json
这个文件package.json
文件中查找有没有main
属性.main
属性,而且main
属性指向的路径存在,那么就尝试加载这个路径指定的文件package.json
文件中,没有main
属性,或者main
属性指向的路径不存在,或者干脆就没有package.json
文件.那么,就会尝试加载模块根目录中的index
相关文件:index.js -> index.json -> index.node
node_modules
文件中找不到对应的模块文件夹,或者在项目根目录中就没有node_modules
这个文件夹.则会向上一层的文件夹中查找,查找规则同上.cannot find module ***
common.js
,其特色是有所的依赖项同步加载.common.js
因为是一个同步加载规范,因此不适合浏览端使用.因而浏览端有了异步模块加载机制AMD规范.个人我的网址: wangyiming.infoui