Node.js&npm

Node.js

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,可以使 JavaScript 运行在服务器端。使用 Node.js,可以方便地开发服务器端应用程序,如 Web 应用、API、后端服务,还可以通过 Node.js 构建命令行工具等

比于传统的服务器端语言(如 PHP、Java、Python 等),Node.js 具有以下特点:

  • 单线程:但是采用了事件驱动、异步 I/O 模型,可以处理高并发请求
  • 轻量级:使用 C++ 编写的 V8 引擎让 Node.js 的运行速度很快
  • 模块化:Node.js 内置了大量模块,同时也可以通过第三方模块扩展功能
  • 跨平台:可以在 Windows、Linux、Mac 等多种平台下运行

Node.js的核心是其对本地磁盘的读写能力,它赋予了在服务端的JS代码对文件的I/O

也就是说,Node.js让JS代码变成能够同时运行在客户端和服务端的全栈语言


框架的概念

我们在学习npm之前,先学习有关框架的概念

框架:针对特定问题的一套固定的解决方案,软件的半成品(极大提升开发效率)

前端框架的表现形式:一大堆jar包

后端框架的表现形式:一大堆css,js,……文件

有一个功德无量的人做了一个几乎包含所有开源前端框架的仓库,而npm就是管理这个仓库的软件


npm

NPM(Node Package Manager),是Node.js包管理工具,是全球最大的模块生态系统,里面所有的模块都是开源免费的;也是Node.js的包管理工具,相当于后端的Maven

  • 前端框架的下载工具
    • 拉取插件/框架到本地仓库中
  • 前端项目的管理工具
    • 项目的初始化
    • 依赖管理
    • 研发模式运行
    • 编译

npm的安装调试

配置阿里镜像
# 配置镜像源为阿里
npm config set registry https://registry.npmmirror.com
# 查看配置是否生效
npm config get registry
# 恢复镜像源为官方镜像
npm config set registry https://registry.npmjs.org/

配置全局依赖下载地址*
# 配置下载地址为 D:\GlobalNodeModules
npm config set prefix "D:\GlobalNodeModules"
# 查看配置是否生效
npm config get prefix

前端依赖的大小很大,所以不推荐在默认地址下安装依赖(C盘) 😓


升级npm
npm install -g npm # 升级为最新的npm版本

npm常用命令

注:npm的所有命令都需要在package.json的目录下运行!!!

项目初始化
命令说明
npm init生成一个package.json 文件,package.json信息会包含项目基本信息(例如项目名称、版本号、作者、许可证)
npm init -y生成一个package.json 文件,所有信息使用当前文件夹的默认值

安装/卸载/查看依赖

查询npm所有依赖 npm | Home (npmjs.com)

安装完依赖后,在package.json中添加一条参数

"dependencies": {
	"jquery": "^3.7.1"
}

注:如果单独使用npm install命令,则会根据package.json中的dependencies参数自动下载所有对应依赖

命令说明
npm install根据dependencies参数安装项目所需依赖
npm install 包名安装包或者指定版本的依赖包(安装到当前项目中)
npm install -g 包名安装全局依赖包
npm uninstall 包名卸载依赖
npm ls查看当前项目已安装的依赖
npm ls -g查看已安装的全局依赖

全局依赖包在安装后并不会在package.json中更改dependencies参数


执行脚本
命令说明
npm run 脚本名执行 npm 脚本

在 package.json 文件中,scripts 字段是一个对象,其中包含一组键值对,键是要运行的脚本的名称,值是要执行的命令

"scripts": {
	"test": "echo \"Error: no test specified\" && exit 1"
}

在vscode中同样可以使用切换面板方式打开终端窗口

scripts 对象通常包含 start、test 和 build 三个脚本:

  • npm run start:运行 node index.js,并启动应用程序
  • 运行 Jest 测试套件
  • 运行 webpack 命令以生成最终的构建输出