| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> nodeJs中的模块化 -> 正文阅读 |
|
[JavaScript知识库]nodeJs中的模块化 |
为什么要学习模块化?? ? 首先要明确:模块化:一个js文件中可以引入另一个js文件的数据。 这个特点是很基础的要求,只要是编程语言都有。而js2015年之前没有;js没有(疼点:多个js都放在一个html文件,而不用相互引用),2015年出了ES6。在语法层面就支持模块化,但是浏览器不支持,所有前面学习传统开发时,还是多个js都放在一个html文件 浏览器不支持,可以: 1.先用开发工具(wepack)搭建一个支持模块化的环境 2.在这个环境中写模块化代码 3.用工具打包打包代码,然后在浏览器中运行 nodeJS和浏览器? 相同点:都是JS代码的运行环境 nodeJS环境是支持模块化的 3.nodejs中的模块化 导出:module.exports ,exports 导入: 自定义模块: const xxx=require(模块文件中的相对位置) 内置模块 :const xxx=require(模块的名字) 第三方模块:const xxx=require(模块的名字) 1. 概念:模块化是指解决一个复杂问题时,自顶向下逐层把系统划分成若干模块的过程,对于整个系统来说,模块是可组合,分解和跟换的单元。2.编程领域中的模块化编程领域中的模块化,是把一个大文件拆成独立并互相依赖的多个小模块 3.模块的三大类1.内置模块 由于 Node.js官方提供 2.自定义模块 自己创建的js文件 3.第三方模块 要去官网进行下载 4.require() 函数加载模块? 1. 作用:使用require()方法加载其它模块时,会执行被加载模块中的代码 ? ? ? 注意:在使用require加载用户自定义模块期间,可以省 .js的后缀名? // yourModule.js?? ? //index.js 返回的是一个空的对象? ? // yourModule.js?? ? //index.js 返回的也是一个空的对象 5. 模块作用域? ? ?1. 定义:和函数作用域类似,在自定义模块中定义的变量,方法等成员,只能在当前模块内被访问,叫做模块作用域 ? ? ?2.好处:防止了全局变量的污染的问题 ? ? ?3. 例子:变量污染,一个html,引入两个js文件导入 一个js,导入两个js文件 6..module对象1.概念:在每一个.js自定义模块都有一个module对象,它里面存储了和当前模块有关的信息。 在自定义模块中,可以使用module.exports对象,将模块内的成员共享出去,供外界使用。 外界用require()方法导入自定义模块时,得到的就是module.exports所指向的对象。 module.exports 默认指向的是一个空的对象。 2.注意点:使用require()方法导入模块时,导入的结果,永远以module.exports指向的对象为准 ? ? 3.exports对象?概念: exports和module.exports 指向的是同一个对象 ? ?注意点:? ? require()模块最终的指向是module.exports ? ? ? ? ? ? ? ? ? ?为了防止混乱,建议大家不要在同一个模块中使用exports 和 module.exports ? ? ? ? ? ? ? ? ? ? module.exports 使用的比较多 一般情况下, 使用 exports 看懂别人的代码? 7.CommonJS规定:定义:Node.js遵循了CommonJS模块化规范,CommonJS规定了模块的特性和各模块之间如何相互依赖 CommonJS规定: 1.每个模块内部,module变量代表当前模块的module.exports属性,require()方法用于加载模块 2.module变量是一个对象,它的exports属性(即module.exports)是对外的接口 3.加载某个模块,其实是加载该模块的module.exports 8.关于包1.定义:Node.js中的第三方模块又叫包 2.包是由第三方个人或团队开发出来的,免费供所有人使用 3.为什么需要包? 由于Node.js的内置模块提供了一些底层的APi,导致在基于内置模块进行项目开发时 包是基于内置模块封装出来的,极大地提高了开发效率 4.包的搜索和下载 搜索包: ?下载包: ? npm -v 查看自己电脑上的所安装npm的版本号 5.在项目中的安装包 语法: 1.npm install 包的完整名称 简写 npm i 完整的名称? 列如: npm i moment 2.案例 // 1.导入需要的包 const moment = require('dayjs') 6.下载指定版本的包 语法: npm i moment @ 版本号 第1位数字:大版本 第2位数字:功能版本 第3位数字:Bug修复版本 版本号提示的规则: 只要前面的版本号增长了,则后面的版本号归零 7.安装包 ,删除包 ? 1.安装指定文件的包 ? npm i 包的名字 ?2. 安装所有的包 ? ? npm i 3.删除包
格式: npm i 包名 -D 9.node_modules的文件夹 和package-lock.json的配置文件?作用: node_modules的文件夹 用来存放所有安装到项目中的包,require()导入第三方包时,就是从这个目录中查找并加载包 package-lock.json 配置文件用来记录 node_modules目录的每一个包的下载信息,列如包的名字,版本号,下载地址 ???????? ? 10.包管理配置文件(package.json)定义: npm规定,在项目根目录中,必须提供一个叫package.jsond的包管理配置文件,用来记录与项目相关的一些配置 今后在项目开发中,一定要把node _modules 文件夹,添加到.gitgnore 忽去文件 npm init -y 可以在项目中创建一个package.json文件 1.注意事项 路径不能包含中文和空格 2.npm init -y默认所有的选项 ,可以进行修改 (没有加y需要一个个进行配置) 3.dependcies节点 11.如何解决下载包慢的问题 淘宝NPM镜像服务器 1.每隔一段时间,自动把npm 官方服务器的包同步到国内 官方服务器的包同步到国内
? 为了更方便的切换下包的镜像源,可以安装nrm这个小工具,利用nrm提供的终端命令,可以快速查看和切换下包的镜像源 通过npm包管理器,将nrm安装为全局可用的工具 npm i nrm -g 查看所有可用的镜像源 nrm ls 将下包的镜像源切换为taobao 镜像 nrm use taobao ? ? ? ? |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 23:07:07- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |