模块和包是node
的核心
思想之一
1.模块
可以理解成 一个文件,类型可以是js json等
优点:代码进行了抽离,方便复用
1.2commonJS规范:
require和exports功能
require 的作用是引入外部的模块
exports 是一个文件被另一个文件引入的入口对象,而且是唯一的入口对象
2.person.js模块
let name = "岳飞"; let age = 20; let sex = "男" function sayHi() { console.log("你好") } //常规写法 let obj = { name: name, age: age, sex: sex, sayHi:sayHi } // es6 写法 let obj2 = { name, age, sex, sayHi } // 每个文件里 node都会内置一个exports对象!!! // 添加一些属性和方法 逐个导出 // exports.name = name; // exports.age = age; // exports.sex = sex; // exports.sayHi = sayHi; // 完整替换 module.exports = obj; // 报错 // exports = obj;
module.exports 和exports区别
1.exports 是对module.exports的引用 exports = module.exports = {};
- 外界在require的时候 ,实际上是引入的module.exports而不是exports
3.使用person.js
新建一个比如index.js 文件用来使用person.js模块内容
require只会返回 模块内exports 导出的对象,其他的不会返回
//注意这里路径的书写 const p = require('./person'); console.log(p.name, p.age, p.sex) p.sayHi()
模块访问顺序
1.首先,查找该文件所在的同级目录下有没有一个文件夹叫node_modules,如果有,查找该目录下是否有与该模块名相同的js文件,如果有,则引入;
2.反之没有,则查找node_modules文件夹下是否有与该模块同名的文件夹,如果有,则引入该文件夹下的index.js;
3.如果不想引入该文件夹下的index.js,则在该文件夹目录下,创建一个package.json,修改入口文件为想要访问的js文件;
4.包
可以理解成一个文件夹(目录),包是由多个模块组成的,其中
npm
是包管理工具:管理的就是包node对包的管理,遵循的是
comonJS
规范comonJS规定,在创建或者下载包时,保证每个包里必须有一个
package.json
文件该文件里存储了与包有关的所有配置信息(比如:包的入口文件)
5.package.json文件的创建
1. 进入指定目录
首先进入到要创建package.json的目录
控制台或者cmd 等着终端执行指令
例如: cd 文件夹路径
2. 交互式 package.json文件
npm init 回车
看控制台 解释
entry point入口文件 默认第一个
3. 快速创建npm init -y
6.一些常用的指令
- 安装 npm i 包名@版本号
- 卸载 npm uni 包名
- 重载所有库 npm i
7.包的使用
创建文件夹Computer
这个目录下创建
package.json
文件
Computer/index.js
exports.name = "index"
Computer/index1.js
exports.name = "index1-1-1-1"
修改Computer/pcakage.json
默认是
ndex.js
运行p.js
查看结果改为
index1.js
运行p.js
查看结果
"main": "index1.js",
使用
和Computer 同级目录 p.js
// 引入自定义包 const c = require("./Computer"); console.log(c.name)