开发环境搭建:Node.js、Vite、选型对比与项目初始化

说真的,很多初学者拿到一个实战项目第一反应是「赶紧写代码」。我踩过这个坑——花半小时装完环境直接开干,结果项目跑起来各种报错,最后发现是 Node 版本不对、Vite 配置少了个插件。嗯,磨刀不误砍柴工,先把地基打好。

Node.js — 整个链路的发动机

我们的实时编辑重生成反馈图谱,底层依赖大量异步 I/O 和文件监听。Node.js 的 Event Loop 在这里优势明显。我个人习惯用 nvm(Node Version Manager)管理版本,方便在多个项目间快速切换。

安装 nvm(macOS / Linux)

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

装完重启终端,验证一下:

nvm --version

安装并切换 Node 版本

我建议统一使用 LTS 版本,当前稳定推荐是 18.x:

nvm install 18
nvm use 18
node -v   # 输出 v18.20.0
npm -v    # 输出 10.5.0
我曾经遇到的坑:直接去官网下载安装包,后来同时维护两个项目,一个要用 16,一个要用 18,卸载重装浪费半天。用 nvm 之后一键切换,再也没烦过。

Vite — 不只是快

Vite 基于原生 ES Module,开发服务器冷启动几乎秒开。HMR 也是毫秒级。相比之下,Webpack 热更新在项目膨胀后越来越慢,我上一个重构项目就是从 Webpack 切到 Vite,体验直接上了一个台阶。

安装 Vite 脚手架

npm create vite@latest

它会交互式询问项目名、框架、语言。你也可以用一行命令指定模板:

npm create vite@latest my-editor-app -- --template react-ts

这是我个人最常用的方式——加 -- 后面的参数直接跳过问答,适合写脚本或快速初始化。

选型对比:React vs Vue

课程的核心是「实时编辑 + 重生成 + 反馈图谱」,三个关键词决定了技术选型的几个考量点:

  • 状态管理复杂度:编辑器内容、图谱节点、撤销重做,需要精细控制。
  • 响应式更新粒度:每次编辑可能只改一个小节点,全量渲染会卡死。
  • 社区生态:有没有现成的编辑器组件、图谱可视化库。

下面这张表格是我根据实际项目经验做的比选:

维度 React Vue
状态管理 useReducer + Context 或 Zustand,精细控制 Pinia / Vuex,响应式自动追踪,但大对象更新需注意
渲染性能 React.memo + useMemo,手动优化 Vue 3 基于 Proxy 的响应式,自动跳过不依赖更新的组件
编辑器生态 Slate.js、ProseMirror(通过 remirror) Tiptap(基于 ProseMirror)、CodeMirror 6 封装
图谱可视化 reactflow / React-D3-graph vue-flow、vue-d3-network
TypeScript 支持 一流,类型推断自然 Vue 3 搭配