续上一篇node入门的补充.
在Nodejs中包由由包结构和包描述文件两个部分组成.
包结构:用于组织包中的各种文件,例如:源代码文件、资源文件
包描述文件:描述包的相关信息,例如:package.json、bin、lib等文件
npm是随着Nodejs一起安装的一个包管理工具,它具有以下用途:
允许用户从NPM服务器下载别人编写的第三方包到本地使用。
允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
(会在根目录下生成一个package.json的文件)
npm init -y (初始化走默认值,不需要在设置)
难点:初始化的文件的父级文件夹名字不要取中文,要用英文
安装命令执行之后,会在项目的根目录下产生有一个node_modules的目录(以后所有下载的包都会安装到该目录)
简写:npm i
安装分为本地安装和全局安装:
本地安装:适用于绝大多数项目开发包
全局安装:一般用于安装命令类型包
本地安装:将包安装到项目中
安装到项目/生产依赖:
npm install 包名 新版nodejs的写法
npm install 包名 --save 旧版写法
简化为:
npm install 包名 -S npm i 包名 -S
安装到开发依赖
npm install 包名 --save-dev
简化为:
npm install 包名 -D npm i 包名 -D
注意:修饰符可以在前、在后
npm i 包名 -D
npm i -D 包名
全局安装:将包安装到计算机上(默认C盘)
npm i 包名 -g
区别:
生产依赖:包不仅在开发阶段要使用,在生产阶段也要使用
开发依赖:只在开发阶段使用
安装指定的版本:
一般安装包时,都是默认下载最新的包。
但是可以用 npm i 包名@版本号 安装你需要的版本
如果不知道版本号,也可以用 npm view 包名 versions 来查询npm服务器存在的包版本信息
这里也有卸载的npm命令:
npm uninstal 包名
npm rm 包名
events模块是node.js内置的模块
- const e=require("node:events")
- const emitter= e.EventEmitter;
常用方法:
on() 注册
off() 解绑
once() 一次
emit() 触发事件
addListener()
removeListener() 删除
removeAllListener(0) 删除所有
Nodejs内置了用于操作文件的模块:fs
常见的操作有文件操作、文件夹操作,操作的方案有同步和异步
常见的方法(异步):
readFile() 读取
writeFile() 写入
rename() 重命名
unlink() 删除
- const fs=require('fs');
-
- //注意:若文件不存在,则会先创建文件,再写入(不会创建文件夹)
-
- fs.writeFile("./info/info.txt","我好",err=>{
- if(err){
- console.log('写入失败:',err);
- return;
- }
- console.log("写入成功");
- })
-
- // fs.writeFile("./data.txt","我好",{flag:"a"},err=>{
- // if(err){
- // console.log('写入失败:',err);
- // return;
- // }
- // console.log("写入成功");
- // })
-
- // fs.writeFileSync("./data.txt","hello jack",{flag:"a"})
-
-
- //剪切
-
- // fs.rename("./msg.txt","../data.txt",err=>{
- // if(err){
- // console.log('写入失败:',err);
- // return
- // }
- // console.log('成功');
- // })
-
- // fs.renameSync("../data.txt","./data.txt")
- // console.log('成功');
-
- //删除文件
- // fs.unlink('./dat.txt',err=>{
- // if(err){
- // console.log('失败',err);
- // return
- // }
- // console.log('成功');
- // })
-
- // fs.unlinkSync("./dta.txt")
-
-
- //读取文件
- // fs.readFile("./data.txt",(err,data)=>{
- // if(err){
- // console.log('读取失败:',err);
- // return;
- // }
-
- // // console.log(data);//Buffer
- // console.log(data.toString());
- // })
-
- // let buf=fs.readFileSync("./1.html")
- // let buf=fs.readFileSync("./data/1.wmv")
- // console.log("读取成功");
- // console.log(buf);
- // console.log(buf.toString());//非文本类型文件,不可以toString()
常见方法:
mkdir() 创建
rmdir() 删除空目录
readdir() 读取目录
stat() 读取文件的信息
stats对象
isDirectory() 是否为文件夹
isFile() 是否为文件
- const fs=require("fs");
-
-
- //创建文件夹
- // fs.mkdir("./mock",err=>{
- // if(!err){
- // console.log('成功');
- // return
- // }
- // console.log('失败:',err);
- // })
-
- // fs.mkdirSync("./route")
-
-
- //读取目录
- // fs.readdir("./data",(err,files)=>{
- // if(err){
- // console.log("失败;",err);
- // return
- // }
- // console.log(files);
- // })
-
- // let files=fs.readdirSync("./data")
- // console.log(files);
-
- //删除
- // //删除空目录
- // fs.rmdir("./data",err=>{
- // if(err){
- // console.log('失败',err);
- // return
- // }
- // console.log('成功');
- // })