3、Node.js环境搭建:Node.js安装与版本管理、npm/yarn包管理器、初始化项目、package.json配置
好,咱们正式开始动手了。
这一章,我会带你搭好Node.js的开发环境。别小看这一步,环境没搭好,后面写再多代码也是白搭。我自己刚入行那会儿,就因为在版本管理上偷懒,吃过不少亏——后面我会细说。
3.1 Node.js安装与版本管理
Node.js的安装,说白了就两种方式:直接装,或者用版本管理工具装。
我个人强烈推荐第二种。为什么?因为你手头的项目,很可能需要不同的Node版本。比如老项目用v12,新项目用v18,你总不能每次卸载重装吧?
3.1.1 直接安装(适合新手尝鲜)
去官网 nodejs.org 下载LTS版本。LTS就是长期支持版,稳定,适合生产环境。我建议你选这个。
安装过程一路Next就行。装完后打开终端,敲两行命令验证:
node -v
npm -v
能看到版本号,说明装好了。嗯,就是这么简单。
3.1.2 使用nvm管理版本(我推荐的方式)
nvm,全称Node Version Manager。这玩意儿能让你在多个Node版本之间随意切换。
我曾经在一个项目里,因为Node版本不兼容,折腾了一整天。后来用了nvm,再也没为版本发过愁。
安装nvm(macOS/Linux):
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
安装nvm(Windows):
去 github.com/coreybutler/nvm-windows 下载安装包。
常用命令:
| 命令 | 说明 |
|---|---|
nvm install 18.16.0 |
安装指定版本 |
nvm use 18.16.0 |
切换使用版本 |
nvm ls |
查看已安装版本 |
nvm alias default 18.16.0 |
设置默认版本 |
3.2 npm与yarn包管理器
Node.js装好了,接下来聊聊包管理器。说白了,就是帮你下载、管理第三方代码库的工具。
3.2.1 npm——Node自带的包管理器
装好Node,npm就有了。你不需要额外安装。
常用命令:
npm init # 初始化项目
npm install # 安装依赖
npm install express --save # 安装并保存到dependencies
npm install -g nodemon # 全局安装
npm uninstall express # 卸载包
你想想看,如果没有npm,你要手动去GitHub下载每个库的源码,再手动引入……那得多痛苦。
3.2.2 yarn——更快的选择
yarn是Facebook推出的,解决了npm早期的一些痛点。比如安装速度慢、版本锁定不严格等。
安装yarn:
npm install -g yarn
常用命令对比:
| 操作 | npm | yarn |
|---|---|---|
| 初始化 | npm init |
yarn init |
| 安装依赖 | npm install |
yarn 或 yarn install |
| 添加依赖 | npm install express |
yarn add express |
| 移除依赖 | npm uninstall express |
yarn remove express |
3.3 初始化项目
环境装好了,咱们来创建一个真正的Node.js项目。
先建个文件夹:
mkdir my-websocket-app
cd my-websocket-app
然后初始化:
npm init -y
加个 -y 参数,意思是所有选项都按默认来。如果你想自定义,直接 npm init 然后一路回车也行。
执行完后,你会发现文件夹里多了个 package.json 文件。这就是项目的“身份证”。
3.4 package.json配置详解
这个文件,你以后会天天跟它打交道。说白了,它记录了项目的所有元信息。
一个典型的 package.json 长这样:
{
"name": "my-websocket-app",
"version": "1.0.0",
"description": "一个WebSocket实时通信示例",
"main": "index.js",
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js"
},
"keywords": ["websocket", "nodejs", "实时通信"],
"author": "你的名字",
"license": "MIT",
"dependencies": {
"express": "^4.18.2",
"ws": "^8.13.0"
},
"devDependencies": {
"nodemon": "^3.0.1"
}
}
关键字段说明:
- name:项目名。不能有中文,不能有大写字母。
- version:版本号。遵循语义化版本规范(主版本.次版本.补丁)。
- scripts:脚本命令。你可以自定义,比如
npm run dev启动开发模式。 - dependencies:生产环境依赖。项目上线后还要用的包。
- devDependencies:开发环境依赖。只在开发时用,比如nodemon这种热重载工具。
express 装到了 devDependencies 里,结果部署到服务器上,项目直接报错找不到模块。记住:运行时需要的包,一定要放 dependencies。
3.5 安装WebSocket依赖
咱们这门课是做实时通信的,所以得先装上WebSocket的库。我用的是 ws,轻量又好用。
npm install ws
装完之后,你会发现多了个 node_modules 文件夹和一个 package-lock.json 文件。
- node_modules:所有依赖包的实际存放位置。这个文件夹一般很大,别手动去改它。
- package-lock.json:锁定依赖版本。确保团队里每个人装的版本都一样。
node_modules 不要提交到Git仓库。记得在 .gitignore 里加上它。不然每次拉代码都慢得要死。
好,环境搭好了,依赖也装上了。下一章,咱们就开始写真正的WebSocket代码了。
你准备好了吗?