前端工程化:开发项目直到上线,过程中集成的所有工具和技术
Node.js是独立执行JavaScript代码的环境
Node.js环境比浏览器环境中的JS少了BOM和DOM
fs模块-读写文件
模块:类型插件,封装了方法/属性
fs模块:封装了与本机文件系统进行交互的方法/属性
语法:
- 加载fs模块对象
- 写入文件内容
- 读取文件内容
CommonJS标准
需求:定义utils.js模块,封装基地址和求数组总和的函数
使用:
- 导出:module.exports={}
- 导入:require('模块名或路径')
模块名或路径:
内置模块:直接写名字(例如:fs,path,http)
自定义模块:写模块文件路径(例如:./utils.js)
ECMAScript标准
默认导出和导入
默认标准使用:
- 导出:export default{}
- 导入:import 变量名 from '模块名或路径'
让Node.js切换模块标准为ECMAScript:
- 运行模块所在的文件夹,新建package.json并设置{"type":"module"}
命名导出和导入
命名标准使用:
- 导入:export 修饰定义语句
- 导入:import {同名变量} from '模块名或路径'
包
包的概念
将模块,代码,其他资料聚合成一个文件夹
包的分类
项目包:用户编写项目和业务逻辑
软件包:封装工具和方法进行使用
要求:根目录中,必须有package.json文件(记录包的清单信息)
注意:导入软件包时,引入的默认是index.js模块文件/main属性指定的模块文件
需求:封装数据求和函数的模块,判断用户名和密码长度函数的模块,形成一个软件包
{
"name":"cz_utils", //软件包名称
"version":"1.0.0", //软件包当前版本
"description":"一个数组和字符串常用工具方法的包", //软件包简短描述
"main":"index.js", //软件包入口点
"author":"itherma", //软件包作者
"license":"MIT" //软件包许可证
}
npm
软件包管理器
npm是Node.js标准的软件包管理器,下载软件包以及管理版本
使用:
- 初始化清单文件:npm init-y(得到package.json文件,有则略过此命令)
- 下载软件包:npm i 软件包名称
- 使用软件包
安装所有依赖
当前项目下,执行npm i安装所有依赖软件包
为什么用node_modules不进行传递:因为用npm下载比磁盘传递的快
全局软件包nodemon
软件包的区别
- 本地软件包:当前项目内使用,封装属性和方法,存在于node_modules
- 全局软件包:本机所有项目使用,封装命令和工具,存在于系统设置的位置
nodemon作用
替代node命令,检测代码更改,自动重启程序
使用
- 安装:npm i nodemon -g(-g代表按照到全局环境中)
- 运行:nodemon待执行的目标js文件
需求
启动准备好的项目,修改代码保存后,观察自动重启应用程序