模块/包与CommonJS-05学习

模块/包与CommonJS

1.模块/包分类

Node.js有三类模块,即内置模块、第三方的模块、自定义的模块

  • 内置模块
const path = require('path')
var extname = path.extname('index.html')
console.log(extname)
  • 第三方的Node.js模块
    第三方的Node.js模块指的是为了实现某些功能,发布的npmjs.org上的模块,按照一定的开源协议供社群使用。如:

npm install chalk

const chalk = require('chalk')
console.log(chalk.blue('Hello world'))
  • 自定义的Node.js模块
    自定义的Node.js模块,也叫文件模块,是我们自己写的供自己使用的模块。同时,这类模块发布到npmjs.org上就成了开源的第三方模块。
    自定义模块是在运行时动态加载,需要完整的路径分析、文件定位、编译执行过程、速度相比核心模块稍微慢一些,但是用的非常多。

  • 模块定义、接口暴露和引用接口
    我们可以把公共的功能抽离成一个单独的js文件作为一个模块,默认情况下这个模块里的方法或者属性,外面是无法访问的。如果要让外面可以访问模块里面的方法或者属性,就必须在模块里面通过exports或者module.exports暴露属性或者方法。

四个步骤
第一步:定义模块

// 第一步:定义模块
const name = {
  surname: 'zhang',
  sayName() {
    console.log(this.surname)
  }
}
// 第一步:定义模块
const age = {
  age: 100
}

// 第二步:暴露接口
// module.exports = { name, age }

// const exports = module.exports
// exports 相当于 module.exports 的引用
// 第二步:暴露接口
exports.name = name
exports.age = age

// 第三步:导入模块
const { name, age } = require('./name')

// 第四步:使用模块
name.sayName()
console.log(age.age)
上一篇:NodeJS有难度的面试题(能答对几个)


下一篇:分享12个Webpack中常用的Loader