node和npm yarn包管理工具

node和包管理工具

1.dos常用指令

2.node的模块化

3.npm包管理工具

4.yarn的常用指令

5.node的内置模块

01-dos的常用指令

  1. 通过win + r, 输入cmd,打开命令提示符工具 --- '小黑窗'

  2. Win系统:打开资源管理器,进入对应的目录下面,在地址栏输入'cmd'即可

  3. MAC系统:找到对应的目录,拖到小黑窗里面去

javascript 复制代码
`快速切换盘符`: 盘符名:

`查看当前目录下的所有的子目录和子文件`: dir

`切换下一级目录`: cd 目录名

`切换上一级目录`: cd ../
    
`清屏`: cls|clear

`终止程序运行`: Ctrl C

'小技巧': 1. 可以通过`tab`键快速切换当前目录下的子目录和子文件;2. 可以通过上下箭头快速切换之前使用过的指令

02-node的概述

javascript 复制代码
`概念`:独立于浏览器的另一个执行js代码的平台

`特性`: 1. ECMAScript: js的核心代码; 2. '让js具有了后端编程语言的能力', 比如操作文件,操作数据库等

`安装`:1. 打开官网,下载稳定版;2. 双击安装,无脑猛点下一步即可,3. 打开小黑窗输入'node -v'查看版本号。 注意不要安装到中文路径下

`node执行js文件`: 鼠标在要执行的js文件上右键,'在终端中打开',通过指令'node js文件'

03-node模块的分类

js 复制代码
`可以分为三大类`: 
	1. 内置模块(nodejs原生提供的)可以直接使用
    2. 自定义模块(需要手动的导出)
    3. 第三方模块(需要下载安装然后才可以使用)
    
`四大内置模块`:
1. fs 操作文件或文件夹
2. path 处理路径的模块
3. url 操作网址
4. http 创建本地服务器

03-node的模块化

javascript 复制代码
`模块化`: 每一个js文件都是一个模块,模块和模块之间可以相互导入导出

`使用`:
	=> 导出:module.exports = {}
	=> 导入:let 变量 = require('路径|模块名')
	=> 注意: 1. 导出的可以是任意内容,但是一般都是对象; 2. 导出的是什么,导入的就是
    		 3. 如果是自己写的js文件,导入的就是'路径名', 如果导入的是node的内置模块或者第三方模块,导入的就是'模块名'	

04-npm的常用指令【重点】

npm: 包管理工具

管理: 安装,删除,替换

包:各种第三方的库: swiper axios qs lodash

npm: 只有安装了node,系统自带了npm

javascript 复制代码
# 1. npm init -y: 初始化包管理工具, 自动创建一个package.json文件

# 2. 安装第三方的库
// 当使用了指令后,默认会生成一个node_modules目录,所有的模块都会放在里面
// 运行环境:线上环境,真实的网络环境。项目上线后依然要使用的库
// 开发环境:开发阶段。只在开发阶段才使用的库。
// 全局环境:某些库或者资源安装之后,可以生成一个系统的指令。所有的项目都可以使用全局环境的指令
	=> 默认安装到运行环境: # npm i 模块名
    => 安装到开发环境:# npm i 模块名 -D
    => 安装到全局环境: # npm i 模块名 -g
    // 注意:npm的全局安装的路径: 'C:\Users\电脑名字\AppData\Roaming\npm'
    
# 3. 查看库的所有版本
npm view 模块 versions

# 4. 安装指定的版本号
npm i 模块@版本号 

# 5. 删除指定的模块
npm remove 模块
// npm remove 模块: 删除运行环境和开发环境的模块
// npm remove 模块 -g: 删除全局安装的模块

# 6. npm i: 根据package.json和package-lock.json包管理文档将记录下来的模块全部装回来

# 7. nvm:控制node版本的工具包:有兴趣需要可以学习!!!

05-package.json文档说明

项目的包管理文档

package-lock.json: 版本锁文件。记录了所有第三方模块的版本号和下载地址。当后面通过npm i指令(或者 yarn 一下)找回所有第三方模块时,安装的也是当前的版本号。

javascript 复制代码
{
  "name": "03-npm-demo", // 项目的根目录
  "version": "1.0.0", // 版本号
  "description": "", // 项目的描述
  "main": "index.js", // 入口文件
  "scripts": { # 可执行脚本
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [], // 关键词
  "author": "", // 作者
  "license": "ISC", // 开源协议
  "dependencies": { // 运行环境安装的模块
    "axios": "^1.2.2"
  },
  "devDependencies": { // 开发环境安装的模块
    "swiper": "^8.4.5"
  }
}

06-yarn的常用指令【重点】

javascript 复制代码
# 1. 全局安装yarn 
npm i yarn -g

# 2. yarn init -y: 初始化包管理工具, 自动创建一个package.json文件

# 3. 安装第三方的库
// 当使用了指令后,默认会生成一个node_modules目录,所有的模块都会放在里面
// 运行环境:线上环境,真实的网络环境。项目上线后依然要使用的库
// 开发环境:开发阶段。只在开发阶段才使用的库。
// 全局环境:某些库或者资源安装之后,可以生成一个系统的指令。所有的项目都可以使用全局环境的指令
	=> 默认安装到运行环境: # yarn add 模块名
    => 安装到开发环境:# yarn add 模块名 -D
    => 安装到全局环境: # yarn global add 模块名: eg: yarn global add rimraf
    // 注意:yarn的全局安装的路径: 'C:\Users\电脑名字\AppData\Local\Yarn\bin'
    // rimraf: 能快速删除node_modules

# 4. 安装指定的版本号
yarn add 模块@版本号 

# 5. 删除指定的模块
yarn remove 模块
// yarn remove 模块: 删除运行环境和开发环境的模块
// yarn remove 模块 -g: 删除全局安装的模块

# 6. yarn: 根据package.json和package-lock.json包管理文档将记录下来的模块全部装回来

# 注意:用yarn安装了全局模块后,需要配置环境变量: 系统中搜索'查看高级系统设置' => 点击'环境变量'=>双击'path'=>新建=>将yarn的全局安装路径粘贴过来=>点击三个确定

07-node的内置模块--fs

javascript 复制代码
# fs(fileSystem): 操作文件或者文件夹
// fs: 操作文件|文件夹的内置模块

let fs = require('fs')

// console.log(fs);

// 1. 异步读取index.txt这个文件中的内容
// fs.readFile('文件名', 编码格式, 回调函数)
// 文件名: 必填,需要读取的文件
// 编码格式:选填, 读取的文件的内容格式. 默认值是Buffer. 建议使用'utf-8'
// 回调函数: 必填:两个参数
//          =》 err: 读取失败的错误信息
//          =》 res:  读取成功的返回内容

// console.log(111);

// fs.readFile('index.txt', 'utf-8', (err, res) => {
//     if (err) return console.log(err);
//     console.log(res);
// })

// console.log(333);


// 2. 同步读取文件的内容
// fs.readFileSync('文件', '编码格式')
// '文件': 必填, 读取的文件名
// '编码格式': 选填,默认是Buffer, 建议 'utf-8'
// console.log(111);
// let res = fs.readFileSync('index.txt', 'utf-8')
// console.log(res);
// console.log(222);


// 3. 异步写入内容
// fs.writeFile('写入文件', '内容', 回调函数)
// '写入文件': 必填。 如果没有这个文件就自动创建该文件。 如果有直接覆盖写入
// '内容': 必填
// 回调函数: 
// 不用参数: 写入之后的反馈    


// console.log(111);
// fs.writeFile('index.txt', '你好,小貂蝉', () => {
//     console.log('恭喜写入完成了哦');
// })
// console.log(222);

// 4. 同步写入内容
// fs.writeFileSync('写入文件', '内容')
console.log(111);
fs.writeFileSync('index1.txt', '你好,小猪佩奇')
console.log(222);

08-node的内置模块--path

javascript 复制代码
// path: 处理路径的模块

// 路径:
// 绝对路径
// d:/a/b/c/d.html
// 相对路径
// ./a/b/c.html  ../a/b.c.html   c.html


let path = require('path')
// console.log(path);


// 1. 拼接相对路径:

let res = path.join('a', 'b', 'c/d', 'e.html')

console.log(res); // a\b\c\d\e.html

// 2. 拼接绝对路径

let res1 = path.resolve('a', 'b', 'c/d', 'e.html')
let res2 = path.resolve('C:', 'a', 'b', 'c/d', 'e.html')

// 注意:如果第一个参数不是绝对路径:拼接出来的路径是以当前js文件所在的绝对路径作为根路径的
// 注意:如果第一个参数是绝对路径: 拼接出来的路径就会以第一个参数作为根路径

console.log(res1); // F:\XA2219\2023-01-09-node和包管理工具\code\06-path内置模块\a\b\c\d\e.html
console.log(res2); // C:\a\b\c\d\e.html

// 3. 解析绝对路径: 返回一个对象
let res3 = path.parse('F:/XA2219/2023-01-09-node和包管理工具/code/06-path内置模块/a/b/c/d/e.html')
console.log(res3);
/* 
{
  root: 'F:/',  根路径
  dir: 'F:/XA2219/2023-01-09-node和包管理工具/code/06-path内置模块/a/b/c/d', 路径的完整信息
  base: 'e.html',  完整的文件名
  ext: '.html',  后缀
  name: 'e' 文件名
}
*/
相关推荐
PyAIGCMaster7 分钟前
python环境中,敏感数据的存储与读取问题解决方案
服务器·前端·python
baozhengw9 分钟前
UniAPP快速入门教程(一)
前端·uni-app
nameofworld19 分钟前
前端面试笔试(二)
前端·javascript·面试·学习方法·数组去重
帅比九日39 分钟前
【HarmonyOS NEXT】实战——登录页面
前端·学习·华为·harmonyos
摇光931 小时前
promise
前端·面试·promise
hummhumm1 小时前
第 12 章 - Go语言 方法
java·开发语言·javascript·后端·python·sql·golang
hummhumm1 小时前
第 8 章 - Go语言 数组与切片
java·开发语言·javascript·python·sql·golang·database
麻花20131 小时前
WPF学习之路,控件的只读、是否可以、是否可见属性控制
服务器·前端·学习
.5481 小时前
提取双栏pdf的文字时 输出文件顺序混乱
前端·pdf
jyl_sh1 小时前
WebKit(适用2024年11月份版本)
前端·浏览器·客户端·webkit