node.js 模块化

一.什么是模块化?

1.是指解决一个复杂问题时,自顶向下逐层把系统划分成若干个模块的过程.

2.编程领域中的模块化就是遵守固定的规则,把大文件拆成独立并相互依赖的多个小模块.

二.为什么要用模块化

代码模块化好处:

  • 可以解决命名冲突
  • 管理依赖
  • 提高代码的可读性
  • 代码解耦,提高代码的复用性

三.模块化的规范

1.模块化规范就是对代码进行模块化的拆分与组合时,需要遵守的那些规则,例如:

  • 使用什么样的语法格式来引用模块
  • 在模块中使用什么样的语法格式向外暴露成员

2.模块化规范的好处:大家都遵守同样的模块化规范写代码,降低了沟通的成本,极大方便了各个模块之间的相互调用,利人利己

3.CMD/AMD/CommonJS规范分别是指什么?

  • CMD规范(Common Module Definition)是 sea.js 在推广过程中对模块定义的规范化产出。应用有sea.js.
  • AMD (Asynchronous Module Definition)是 require.js 在推广过程中对模块定义的规范化产出。应用有require.js.
  • CommonJS规范是在服务器端模块的规范,是同步加载的.应用有node.js.

区别:

1. 对于依赖的模块,AMD 是提前执行,CMD 是延迟执行

2. CMD 推崇依赖就近,AMD 推崇依赖前置

三.Node中的模块化

1.内置模块

内置模块是由 Node.js 官方提供的,例如 fspathhttp

2.自定义模块

用户自己创建的js文件

1.导入使用 require 方法加载模块

const test = require('./01.test')
console.log(test)

共享成员时的注意点

使用 require() 方法导入模块时,导入的结果,永远以 module.exports 指向的对象为准  

2.导出

使用 module.exports 对象,将模块内的成员共享出去,供外界使用

module.exports.username = 'zs';
module.exports.sayHello = function () {
    console.log('Hello!');
}

3.第三方模块

由第三方开发出来的模块,并非官方提供的内置模块,也不是用户创建的自定义模块,使用前需要先下载

1.包

1.Node.js 中的第三方模块又叫做包

2.不同于 Node.js 中的内置模块与自定义模块,包是由第三方个人或团队开发出来的,免费供所有人使用

2.下载

这个包管理工具随着 Node.js 的安装包一起被安装到了用户的电脑上。

可以在终端中执行 npm -v 命令,来查看自己电脑上所安装的 npm 包管理工具的版本号

3.node_modules和package-lock.json的作用

初次装包完成后,在项目文件夹下多一个叫做 node_modules 的文件夹和 package-lock.json 的配置文件,它们的作用是:

  1. node_modules 文件夹用来存放所有已安装到项目中的包。require() 导入第三方包时,就是从这个目录中查找并加载包

  2. package-lock.json 配置文件用来记录 node_modules 目录下的每一个包的下载信息,例如包的名字、版本号、下载地址等

4.pakage.json配置文件的作用

使用npm init -y命令 ,  创建一个package.json 配置文件 , npm 规定,在项目根目录中,必须提供一个叫做 package.json 的包管理配置文件。可用来记录项目中安装了哪些包

注意:

  • 上述命令只能在英文的目录下成功运行!所以,项目文件夹的名称一定要使用英文命名,不要使用中文,不能出现空格
  • 运行 npm install 命令安装包的时候,npm 包管理工具会自动把包的名称和版本号,记录到 package.json

5.安装包 

npm i xxx                      // 安装一个包

npm i xxx1  xxx2           // 安装多个包

npm i 包名@版本号      //安装指定的包

npm i                            //根据 package.json 来更新(安装/删除/更新版本号)所有的包

6.dependencies 节点的作用

 package.json 文件中,有一个 dependencies 节点,专门用来记录你 使用 npm install 命令安装了哪些包

 作用:

  1. 如果某些包只在项目开发阶段会用到,在项目上线之后不会用到,则建议把这些包记录到 devDependencies 节点中
  2. 与之对应的,如果某些包在开发和项目上线之后都需要用到,则建议把这些包记录到 dependencies 节点中
  3. 您可以使用如下的命令,将包记录到 devDependencies 节点中

 7.卸载包

upm uninstall  包名

npm uninstall 命令执行成功后,会把卸载的包,自动从 package.jsondependencies 中移除掉

4.解决包下载慢的问题

在使用 npm 下包的时候,默认从国外的 npm 服务器进行下载,此时,网络数据的传输需要经过漫长的海底光缆,因此下包速度会很慢

解决:

  1. 淘宝在国内搭建了一个服务器,专门把国外官方服务器上的包同步到国内的服务器,然后在国内提供下包的服务。从而极大的提高了下包的速度

  2. 镜像是一种文件存储形式,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像

切换 npm 的下包镜像源

使用 nrm 切换下载包的服务器

为了更方便的切换下包的镜像源,可以安装 nrm 这个小工具,利用 nrm 提供的终端命令,可以快速查看和切换下包的镜像源

1.通过npm包管理器,将nrm安装为全局可用的工具   npm i nrm -g

2.查看所有可用的镜像源     nrm ls

3.将下包的镜像源切换为taobao镜像      nrm use taobao

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值