nodejs(三)模块化,exports对象,npm与包的分类和结构,模块分类,模块作用域,exports对象,dependencies与devDepndencies节点,nrm,i5ting_toc

68 篇文章 1 订阅
14 篇文章 0 订阅

模块化的基本概念

在这里插入图片描述
在这里插入图片描述

编程中的模块化 及 模块化拆分的好处:

在这里插入图片描述
模块化规范:
在这里插入图片描述

node中的模块分类:

在这里插入图片描述

node的 加载模块:

使用require()方法
在这里插入图片描述
注:
只有加载用户自定义模块时需要写路径其他的都只需要写名称即可

使用require加载其他模块(其他js)时,会执行其中的代码
在这里插入图片描述
在这里插入图片描述
执行:
在这里插入图片描述
**注:**使用require加载 自定义模块,可省略.js后缀名

node中的模块作用域

在这里插入图片描述
就是访问不了模块中定义的变量和方法

作用域的好处:
防止变量污染
在这里插入图片描述

向外共享 模块作用域 中的成员

module对象
在这里插入图片描述
通过module对象中的 exports 输出
每个自定义模块中都会有一个module对象
module.exports对象:
当前模块对外的一个出口
在这里插入图片描述

例子:
结果为空对象
在这里插入图片描述
因为11.自定义模块.js内没有任何代码(没有exports),所以模块作用域
在这里插入图片描述

module.exports使用例子:
在这里插入图片描述

共享成员的注意点

永远以module.exports指向的对象为准
在这里插入图片描述

exports对象

默认情况下 module.exportsexports指向同一个对象
在这里插入图片描述
怎么证明两个默认是指向同一对象:
在这里插入图片描述
使用exports输出例子:
在这里插入图片描述
注:
无论是exports还是module.exports结果都以module.exports指向的对象为准
注:
输出sayHello为方法时,打印出来的是【Function】(exports.sayHello赋值为function())
exports写法相对简单

exports和module.exports的使用误区

require()模块时,永远以module.exports指向的对象为准
在这里插入图片描述
注:
如果先声明过exports,再次声明module.exports(不是module.exports.xxx直接挂载,而是module.exports={}),输出结果为module.exports所声明的新对象
在这里插入图片描述
例子:
注:
exportsmodule.exports使用误区例子
在这里插入图片描述
exoprts指向的对象赋值给了module.exports结果
会把module.exports指向对象替换成exports指向的对象
在这里插入图片描述
注:
为了防止混乱,建议不要在同一个模块中同时使用exportsmodule.exports以防混淆

node中的模块化规范

在这里插入图片描述

npm与包

第三方模块又叫做包
在这里插入图片描述
包的来源
在这里插入图片描述
为什么需要包
注:
包是基于内置模块封装出来的,没有内置模块就不会有第三方模块(包)
在这里插入图片描述
从哪里下载包
https://www.npmjs.com
在这里插入图片描述
在这里插入图片描述
怎么下包
在这里插入图片描述

初次装包后 多了哪些文件
在这里插入图片描述
包的信息会记录在package-lock.json中的dependencies中

注:
不要去手动修改node_modulespackage-lock.json中的任何代码,npm包管理器会自动维护它们

安装指定版本的包
@符号
在这里插入图片描述
发现包版本不对,直接npm i xxx@版本号重新安装即可

包的 语义话版本规范

在这里插入图片描述
提升规则:第一位增长,第二和第三位数字都变为0,第二位数字增长,第三位就变为0

包管理配置文件
package.json必须在项目根目录下
在这里插入图片描述

多人协作问题(git上传去除node_modules)
在这里插入图片描述
添加到gitigonre忽略文件
在这里插入图片描述

快速创建package.json

第一次npm init -y
在这里插入图片描述
注:
项目名称不能包含空格和中文
否则 npm init -y命令会报错

dependencies节点

记录使用了哪些包

注:
创建时没有,在npm install以后就会出现
在这里插入图片描述

一次性安装所有的包

在这里插入图片描述
在这里插入图片描述
卸载包

npm uninstall

卸载指定包

npm uninstall xxx

在这里插入图片描述

devDepndencies节点

只在开发阶段会用到,包建议记录dev Dependencies节点中

开发上线后都会用到,建议把包记录dependencies节点中

怎么记录到devDependencies

npm i 包名 -D

在这里插入图片描述
注:
- -save-dev可以简写-D

解决小包速度慢的问题

在这里插入图片描述
默认从国外服务器上下包,需要通过海底光缆,所以

解决方法:使用淘宝镜像
在这里插入图片描述

如何切换npm的下包镜像源

注:下包镜像源,就是下包的服务器地址
在这里插入图片描述
默认下载地址是官方地址https://registry.npmjs.org/
在这里插入图片描述

nrm

用来快速切换和查看下包的镜像源
在这里插入图片描述
用的最多的一版就是淘宝的服务器和npmjs官网的服务器地址

nrm切换要用use

在这里插入图片描述

包的分类

1.项目包
被安装到node_modules目录中的包
项目包两类:记录到devDependenices中的包和记录在dependenices中的包
开发依赖包和核心依赖包
在这里插入图片描述
全局包
全局安装或全局下载 -g
在这里插入图片描述
注:
是否要加-gnpmjs官方网站中会体现出来

先去官网搜索,比如nrm,再点入nrm中,下拉到install,即会体现(一般用-g的都是工具性质的包)

在这里插入图片描述

i5ting_toc

注:把md文档转为html页面的小工具
在这里插入图片描述
在这里插入图片描述
-f 文件名(转换指定文件),tab键自动补齐文件名,-o默认浏览器中打开

注:md就是markdown文件

规范的包结构

在这里插入图片描述

发布包

1.注册npm账号
在这里插入图片描述
2.登陆npm账号
注:这里指的登陆不是npm网站上的登陆,而是终端运行npm login命令

注:运行npm login命令时,下包服务器的地址一定要切换npm官方地址,否则会导致发布包失败
在这里插入图片描述
建议可以先使用nrm ls命令查看当前服务器地址
在这里插入图片描述
星号代表当前服务器地址

把包发布到npm上

包使用 cd 文件夹名 切换到包根目录
在这里插入图片描述
再运行npm publish命令

删除已发布的包

注:npm unpublish只能删除72小时以内的包删除的包24小时以内不允许重复发布
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值