1、什么是模块化?
定义:CommonJS 模块是为 Node.js 打包 JavaScript 代码的原始方式。Node.js 还支持浏览器和其他 JavaScript 运行时使用的 ECMAScript 模块标准。
在 Node.js 中,每个文件都被视为一个单独的模块。
概念:项目是由很多个模块文件组成的
好处:提高代码复用性,按需加载,独立作用域
使用:需要标准语法导出、导出使用
需求:定义utils.js模块,封装基地址和求数组总和的函数
const baseURL = 'http://hmajax.itheima.net'
const getArraySum = arr => arr.reduce((sum, item) => sum += item, 0)
2、CommonJS 标准
导出:module.exports = {}
导入:require('模块名或路径')
模块名或路径
内置模块:直接写名字(fs 、path、http)
路径:模块文件路径(./utils.js)
3、ECMAScript 标准
注意:Node.js 默认支持 CommonJS 标准语法
如需使用 ECMAScript 标准,在运行模块所在文件夹新建 package.json 文件,并设置
默认导出和导入(全部加载)
导出:export default {}
导入:import 变量名 from '模块名或路径'
命名导入和导出(按需加载)
导出:export 修饰定义语句
导入:import {变量名} from '模块名或路径'
4、包的概念
包:将模块、代码、其他资料聚合成的文件夹
分类:
项目包:主要用于编写项目和业务逻辑
软件包:封装工具和方法进行使用
要求:根目录中,必须有 package.json 文件(记录包的清单信息)
注意:导入软件包时,导入的默认是 index.js 文件(main 属性指定的模块文件)
需求:封装数组求和模块,判断用户名和密码长度函数的模块,形成一个软件包
5、npm 软件包管理器
npm 是 Node.js 标准的软件包管理器。
它起初是作为下载和管理 Node.js 包依赖的方式,但其现在已称为前端 JavaScript 中使用的工具
使用:
1、初始化清单文件 npm init -y (得到 package.json 文件,有则略过此命令)
2、下载软件包 npm i 软件包名称
3、使用软件包 const 名称 = require('软件包名称')
6、安装所有依赖
问题:node_modules 不进行传递,因为用 npm 下载比磁盘传递要快。但是项目中不包含 node_modules,不能正常运行。如何解决?
解决:项目终端输入 npm i
会下载 package.json 中记录的所有软件包
7、全局软件包 nodemon
软件包区别:
本地软件包:当前项目内使用,封装属性和方法,存在于 node_modules
全局软件包:本机所有项目使用,封装命令和工具,存在于系统设置的位置
nodemon 作用:替代 node 命令,检查代码更改,自动执行
使用:
1、安装 npm i nodemon -g (-g 代表安装到全局环境中)
2、运行 nodemon 目标JS文件(运行一次后,如果更改目标文件内容,可自动执行)
8、总结
模块化
包
常用命令
所在文件夹不能有特殊字符和中文