3. Node.js 环境搭建:安装 Node.js、npm 包管理、项目初始化、ES6 模块化基础

好,咱们正式开始动手了。信令服务器说白了就是一个跑在服务器上的 Node.js 程序。所以第一步,先把 Node.js 环境搭好。这部分内容不难,但细节挺多。我当年第一次搭环境时,就踩过不少坑,今天一并给你讲清楚。

3.1 安装 Node.js 与 npm

Node.js 是一个 JavaScript 运行时环境。它让 JS 能跑在服务器上。npm 是它的包管理器,用来下载第三方库。

安装方式有两种:

  • 官网下载安装包:去 nodejs.org 下载 LTS 版本。LTS 是长期支持版,稳定。我建议你选这个。
  • 使用 nvm 管理版本:nvm 是 Node Version Manager。它允许你安装多个 Node.js 版本,随时切换。我个人习惯用 nvm,因为项目多了,版本要求不一样。

验证安装是否成功:

node --version
npm --version

如果输出版本号,说明安装成功。比如 v18.16.0 和 9.5.1。

小提示:Windows 用户安装完记得重启终端。macOS 用户如果遇到权限问题,试试用 sudo 安装 nvm。

3.2 npm 包管理基础

npm 是 Node.js 自带的包管理工具。你想想看,如果没有 npm,每次写代码都得自己造轮子,那得多累。npm 让我们能直接使用别人写好的模块。

常用命令:

命令 作用
npm init 初始化项目,生成 package.json
npm install <包名> 安装依赖包
npm install -g <包名> 全局安装(不推荐滥用)
npm uninstall <包名> 卸载依赖包
npm update 更新依赖包

注意:千万不要用 sudo npm install -g 全局安装包。我曾经因为权限问题搞崩过系统环境。后来改用 npx 或者本地安装,再也没出过问题。

3.3 项目初始化

初始化项目很简单。打开终端,进入你的工作目录,然后执行:

mkdir webrtc-signaling-server
cd webrtc-signaling-server
npm init -y

-y 参数表示使用默认配置。执行完后,目录下会生成一个 package.json 文件。这个文件是项目的“身份证”,记录了项目名称、版本、依赖等信息。

package.json 长这样:

{
  "name": "webrtc-signaling-server",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

嗯,这里要注意。默认的 main 字段是 index.js。如果你打算用 ES6 模块,后面需要改一下 type 字段。

3.4 ES6 模块化基础

ES6 模块化是 JavaScript 官方的模块标准。它用 importexport 关键字来管理代码。相比老旧的 CommonJS(require),ES6 模块更现代、更安全。

启用 ES6 模块:

package.json 中添加一行:

"type": "module"

这样 Node.js 就会把 .js 文件当作 ES6 模块来处理。

导出模块:

// utils.js
export function add(a, b) {
  return a + b;
}

export const PI = 3.14159;

导入模块:

// main.js
import { add, PI } from './utils.js';

console.log(add(2, 3)); // 5
console.log(PI);        // 3.14159

避坑指南:我曾经在导入时忘记写文件扩展名 .js,结果 Node.js 报错找不到模块。记住,ES6 模块下,导入本地文件必须带扩展名。

默认导出 vs 命名导出:

导出方式 语法 导入方式
命名导出 export const a = 1 import { a } from '...'
默认导出 export default function() {} import myFunc from '...'

我个人习惯用命名导出。因为默认导出在重命名时容易搞混。你想想看,一个模块里只能有一个默认导出,但命名导出可以有多个,更灵活。

3.5 本章知识体系

下面这张图帮你梳理了本章的核心逻辑。从环境安装到模块化,每一步都是后续开发的基础。

Node.js 环境搭建知识体系 安装 Node.js 安装 npm 验证版本 npm init -y → package.json ES6 模块化:type: "module" + import/export 信令服务器开发环境就绪

个人经验:我刚开始学 Node.js 时,总觉得模块化是小事。直到项目大了,代码乱成一锅粥,才后悔没早点用 ES6 模块。模块化不只是语法,更是一种工程思维。把功能拆成小模块,每个模块只做一件事,代码才好维护。

好了,环境搭好了,模块化也懂了。下一章咱们就开始写真正的信令服务器代码。到时候你会看到,这些基础操作有多重要。

公众号:蓝海资料掘金营,微信deep3321