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 设置默认版本
小技巧: 我习惯把默认版本设成最新的LTS。这样新开终端时,直接就能用。

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 yarnyarn install
添加依赖 npm install express yarn add express
移除依赖 npm uninstall express yarn remove express
我的建议: 团队项目用yarn,个人项目用npm。其实都行,看习惯。我自己现在两个都用,哪个顺手用哪个。

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代码了。

你准备好了吗?