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 命令以生成最终的构建输出