Module+exports+Package 简介篇

本文介绍了Node.js中的模块化概念,包括Module模块、exports对象和Package包。模块是NodeJS的核心,遵循CommonJS规范,使用require()引入模块,exports对象作为模块的出口。同时,文章讨论了exports和module.exports的区别。此外,还阐述了包的引入原因,包本质上是包含多个模块的文件夹,通过package.json文件来管理和识别包内的模块。最后,简要介绍了npm包管理器的功能,如下载、移除和查看包信息。
摘要由CSDN通过智能技术生成

Module 模块

  • 模块化是NodeJS的核心思想之一

  • Node允许我们在一个js文件里引入另外的js文件

  • 模块: 本质上就是一个文件, 大部分是js文件. 也可以是json文件

    实现原理: nodeJS的模块化遵循的是CommonJS规范

    CommonJS 规定了JS模块所需的语法规则

    1. require() 作用: 引入其他模块
    2. exports 对象, 作用: 作为当前模块的唯一出口对象
  • 当引入自定义的模块时, 路径以./开头, 而且系统会帮助我们省略后缀

    const stu = require("./student");
    

exports 对象

  • exports对象, 作为当前模块的唯一出口对象

  • node为每个js文件, 都内置了一个exports对象, 当该文件被require时, 本质上得到的一定是这个文件里内置的exports对象

let name = "张三";
let age = 20;
function sayHi() {
    console.log("你好");
}

exports.name = name;
exports.age = age;
exports.sayHi = sayHi;

module.exports.name = name;
module.exports.age = age;
module.exports.sayHi = sayHi;

exports = {
    name:name,
    age:age,
    sayHi:sayHi
}

module.exports = {
    name,
    age,
    sayHi
}
  • exports 和 module.exports 的区别

    1. exports是对module.exports的引用 exports = module.exports = {};
    2. 在外界require时, 真正引入的是module.exports对象而不是exports是对module.exports的引用 exports = module.exports = {};exports对象

Package 包

  • 引入包的原因

    模块本质上是一个文件, 如果我们将来在需要一个模块的时候, 该模块比较复杂, A模块里引入B模块, B模块里引入了C模块, C模块需要引入D模块, 一般我们会把这次个文件都放到一个文件夹里。

    如果我们所需要的模块是一个文件夹时, 我们在引入的时候该如何引入呢??? 直接require文件夹的名字吗??? 如果直接引入文件夹的名字, 系统怎么知道该去获取文件夹里哪个js文件的exports对象呢???

    针对此问题,引入了node包的概念。

  • 包的本质

    本质上是一个文件夹, 一个包(文件夹)里可以包含多个模块(文件). 其实我们将来在引入一些第三方的插件时, 大部分的插件都是以一个文件夹的形式存在的, 所以我们引入的都是包

    commonJS 规定, 如果自定义一个包, 需要保证, 每个包里有一个package.json文件, 该文件里是对当前包的一些配置信息, 而将来在引入该包时, node就会根据package.json文件去识别包里的模块, 进而引入对应的exports对象.

    node允许我们通过交互式的方式 创建package.json文件, 不需要我们手动创建和书写

    步骤:

    1. 通过命令行 来到包对应的路径下
    2. 命令: npm init(交互式) 或者 npm init -y(快速但所有都是默认值)

    默认情况下 在引入包时, 系统会为我们引入模块名为index的模块的exports对象

  • npm

    node package manager 包管理器 负责对第三方的包进行管理

    可以让我们快速方便的下载第三方包, 并根据对应的依赖关系 自动下载所需的依赖

    注意: node和npm不是绑定的

    通过npm 管理第三方的包:

    1. 下载

      ​ npm install(i) 插件名 安装某个插件

      ​ npm install(i) 根据依赖,重装所有插件

      ​ npm install(i) 插件1 插件2 插件3 … 一次安装多个插件

      ​ npm install(i) 插件 --save 生产环境所需要的依赖

      ​ npm install(i) 插件 --save-dev 开发环境所需要的依赖

      ​ npm install(i) 插件@版本号

    2. 移除

      npm uninstall(uni) 插件名

    3. 查看包信息

      npm view 插件名

    4. 查看包的最新版本

      npm view 插件名 version

    5. 查看包在当前项目的版本

      npm list 插件名 version

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值