ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

基于VSCode的Node.js开发环境搭建全攻略

基于VSCode的Node.js开发环境搭建全攻略 之前在帮一个朋友调前端项目发现他电脑上的 Node.js 环境乱得一团糟全局模块装了好几个版本npm 源还是默认的官方地址VSCode 里跑个npm run dev各种报错。最后我干脆帮他彻底重装了一遍从头到尾把基于 VSCode 的 Node.js 开发环境捋清楚。整个过程走下来我觉得很有必要把这次经验整理成一篇完整的实操记录。这篇文章适合谁刚接触前端开发、准备用 VSCode 写 Node.js 或 Vue/React 项目的新手也包括那些已经在用 Node.js 但环境一直“带病运行”的老手。不管你是 Windows 还是 macOS这篇内容都能直接用。我会把版本选择、安装步骤、VSCode 配置、常见坑全部讲透并解释每一步背后的原理跟着做就能拥有一套干净、稳定的开发环境。1. 环境搭建的整体设计思路1.1 为什么选择 VSCode Node.js 这个组合先说一个很多新手会问的问题写 Node.js 明明可以用记事本为什么非要用 VSCode实际上Node.js 本身只是一个 JavaScript 运行环境它负责把你的代码翻译成机器指令执行不提供任何编辑界面。如果没有一个好用的编辑器你写代码时的报错提示、自动补全、调试断点全都没有开发效率会非常低。VSCode 之所以成了 Node.js 开发者的主流选择主要有三个原因。第一它是微软出品的免费开源编辑器对 JavaScript 和 TypeScript 的支持几乎是“原生级”的内置了智能提示和调试功能不用装一堆插件就能用。第二它的插件生态极其丰富ESLint、Prettier、Git 集成这些工具都能一键安装把这些工具整合进编辑器后代码质量和开发体验会有质变。第三它内置了终端面板你可以在编辑器底部直接运行 npm 命令而不用来回切换到独立的命令行窗口。这套组合解决的核心问题是把“写代码—跑代码—查错误—改代码”这个循环全部收敛到一个窗口里完成。你不再需要开着多个软件来回切换调试时打一个断点VSCode 就能停在那一行让你看变量值。这种体验在纯命令行环境下很难实现对新手尤其友好。1.2 Node.js 版本选择LTS 优先还是版本追新安装 Node.js 之前必须先把版本策略想清楚否则过几个月你会发现版本又乱套了。Node.js 的官方发布节奏是每年发布一个大版本同时区分两条线偶数版本号为 LTS长期支持版奇数版本号为 Current当前版本。我的建议非常明确日常开发一律选择 LTS 版本。原因很简单LTS 版本会获得至少 30 个月的官方维护包括安全修复和关键 bug 修复而 Current 版本的生命周期只有几个月。举个真实的例子我之前用 Node.js 18 开发一个服务端项目后来生产环境要求升到 Node.js 20因为 20 和 18 都是 LTS 线迁移成本很小。如果我当初用的是 Node.js 19那这个版本现在早就停止维护了升级时会面临更多兼容性问题。很多热门框架在发布时也会特别声明“需要 Node.js 18 或 20”这些版本号指的都是 LTS 版本。用 LTS 版本不只是为了稳定更重要的是你在网上搜到的教程、第三方模块的说明绝大多数都是基于 LTS 版本写的跟着操作不容易踩坑。1.3 直接装官方包还是用版本管理工具安装 Node.js 有两个大方向去官网下载安装包或者用版本管理工具安装。如果你只是临时用一下、不需要频繁切换版本官网下载安装包是最直接的方式。但如果你可能同时维护多个项目不同项目要求的 Node.js 版本不一样那我强烈建议你用版本管理工具。这里要重点解释一下为什么推荐版本管理工具。Node.js 本身自带一个叫做 npm 的包管理器它负责安装和管理第三方模块但 npm 管理不了 Node.js 本身。当你装了 Node.js 14 之后想升级到 Node.js 20官网安装包的方式是“先卸载旧版本再装新版本”这个过程很容易出问题——环境变量残留、全局模块丢失每个都是坑。而版本管理工具可以让你在同一个系统里安装多个 Node.js 版本随时切换互不干扰。常见的版本管理工具有 nvm-windows专用于 Windows、nvm用于 macOS/Linux、fnm、volta 等。我之前一直用的是 nvm-windows操作逻辑简单明了nvm install 20安装指定版本nvm use 20切换当前使用的版本。对于新手来说版本管理工具没有增加你的学习负担反而帮你绕开了未来很多升级麻烦。1.4 项目隔离思路全局环境干净依赖装在项目里搭建环境之前还有一个思路要想清楚Node.js 环境应该尽量保持“全局干净”所有项目相关的依赖都装进项目自己的目录里。这话听起来简单但实际操作中很多人做不到。背后的原理是npm 安装的模块可以分成两种全局安装和项目内安装。全局安装的模块放在系统公共目录里任何项目都能用项目内安装的模块则放在当前项目下的node_modules目录里只有当前项目能用。新手最常见的错误是什么都往全局装时间一长全局目录越来越乱不同项目需要的不同版本互相打架删除的时候又怕删错了影响其他项目。我个人的习惯是全局只装那些“跨项目都会用到的开发工具”比如typescript、eslint、prettier这类脚手架和格式化工具项目本身的依赖比如express、react、vue这些一律用npm install装进项目里。每个项目启动时npm 会优先从项目内的node_modules查找模块找不到再向全局找所以这种安排不会产生冲突。2. 安装前的准备工作与核心概念2.1 了解 Node.js 和 npm 的关系很多新手会混淆 Node.js 和 npm其实它们是两个不同的东西只是安装 Node.js 的时候会一起装进来。Node.js 是 JavaScript 的运行时环境负责执行.js文件里的代码npm 是 Node.js 的包管理器负责下载、安装、更新第三方代码库。打个比方如果 Node.js 是一台汽车那 npm 就是加油站。汽车可以不开去加油站也能跑指你手写所有代码、不引用任何第三方模块但现实中几乎不可能因为现代开发总要用到别人写好的功能模块。npm 做的事就是从全球的 npm 仓库里把别人发布的功能包下载下来装到你的项目里同时帮你处理这些功能包之间的依赖关系。验证 Node.js 和 npm 是否安装成功最常用的命令就是node -v和npm -v它们分别输出版本号。这个过程看似简单但背后涉及一个叫“环境变量”的概念——系统需要知道去哪里找node这个命令对应的程序文件。安装 Node.js 时安装向导会自动把 Node.js 的目录加入系统的 PATH 环境变量所以在命令行里输入node就能被正确识别。如果后续你发现输入node提示“不是内部或外部命令”八成就是环境变量配置出了问题。2.2 环境变量的作用与常见误区我这里想多说几句环境变量因为它是排查安装问题绕不开的知识点。环境变量可以简单理解成系统的一张“通讯录”里面记录了一些关键程序的保存路径。当你在命令行输入一个命令时系统会按这张通讯录里登记的路径逐个去找找到了就执行找不到就报错。Node.js 安装时要做两件事第一把 Node.js 的可执行文件放到某个目录第二把这个目录路径写进 PATH 环境变量。Windows 下的默认路径是C:\Program Files\nodejs\macOS 下通常是/usr/local/bin/或者通过 nvm 指定的路径。常见误区是很多人安装了 Node.js 之后直接修改了环境变量里已有的路径导致系统找不到其他程序的命令。我见过不少这样的案例为了给 Node.js 单独加一个目录不小心把原本的 PATH 值覆盖了结果连 Java、Python 的命令都失效了。正确做法是在原有 PATH 值的末尾追加新的路径用分号Windows或冒号macOS/Linux隔开。如果你用的是 nvm 这样的版本管理工具它会自动处理这些路径问题这也是我鼓励新手用 nvm 的另一个原因。2.3 检查电脑现有环境避免冲突安装之前一定要先检查电脑里是否已经装过 Node.js这一步非常关键。很多人电脑里可能已经存在某个版本的 Node.js可能是之前做别的项目时装上的可能是某个软件自动安装的如果不管不顾直接装新的很可能会出现两个版本相互干扰的情况命令行里执行node时调用的可能是旧版本。检查方法很简单打开命令行工具Windows 下按Win R输入cmd回车macOS 下打开终端然后输入node -v。如果显示出版本号说明电脑里已经有 Node.js如果提示命令不存在说明还没装过。如果检查到旧版本我建议先把它卸载干净再装新的。具体来说Windows 下可以去“设置—应用”里找到 Node.js 卸载macOS 下如果之前是用安装包装的可以运行 Node.js 官方提供的卸载脚本来清理。卸载之后最好检查一下 PATH 环境变量里是否还残留着旧的 Node.js 路径有的话一并删除然后再开始安装新版本。这一步虽然繁琐但能避免后面大量莫名其妙的报错。2.4 VSCode 侧的准备工作在开始安装 Node.js 之前可以先确认一下 VSCode 本身是否就绪。如果你还没装 VSCode直接去官网下载安装包Windows 用户安装时建议勾选“添加到 PATH”这个选项这样之后在任意终端里都能直接使用code命令打开 VSCode。VSCode 装好后我建议先设置一下中文界面。启动 VSCode点击左侧扩展图标在搜索框输入“Chinese (Simplified)”找到微软官方发布的中文语言包点击安装然后重启编辑器即可。这里的“扩展”是 VSCode 的插件系统后续我们还需要安装其他几个关键插件所以先把 VSCode 的扩展功能弄熟。VSCode 本身的设置也可以提前调整一下。打开设置面板快捷键Ctrl ,或Cmd ,建议把“Files: Auto Save”设为“onFocusChange”或“afterDelay”这样切换窗口时会自动保存文件避免忘记保存导致跑的代码不是最新版本。另外建议把“Editor: Font Size”调到 14 或 16看代码更舒服当然这个看个人偏好。3. 实操过程一步步搭好 Node.js 开发环境3.1 方案选择我用的是 nvm-windows LTS 版本开始动手之前先交代一下我这次实操用的方案操作系统是 Windows 11采用 nvm-windows 管理 Node.js 版本安装当前推荐的 LTS 版本本文操作时最新 LTS 是 Node.js 20.x读者操作时以本机nvm list available显示为准。如果你用 macOS思路基本一致只是把 nvm-windows 换成 macOS 版的 nvm命令略有不同但逻辑相同。为什么这次我用 nvm-windows 而不是直接去官网下载安装包前面已经解释过了版本切换方便升级时不容易出问题。如果你确定自己长期只会用到一个固定版本也可以直接用官网安装包两种方式选一即可。需要注意一点如果你当前系统里已经装了 Node.js用 nvm-windows 之前需要先卸载干净否则 nvm 管理不了已存在的版本命令切换时还会出现两个版本并存的情况。3.2 安装 nvm-windows 并指定 Node.js 版本第一步从 nvm-windows 的 GitHub 仓库下载最新版本的安装包。下载文件是类似nvm-setup.exe的可执行文件运行后按向导完成安装。安装路径我建议保持默认但如果你有 C 盘空间焦虑症也可以装到 D 盘只是安装完成后需要手动确认环境变量指向正确。安装完成后打开一个新的命令行窗口输入nvm version如果能输出版本号就说明安装成功了。接着输入以下命令查看当前可用的 Node.js 版本列表nvm list available这个命令会显示一个大列表其中带LTS字样的就是长期支持版。安装指定版本nvm install 20.11.0这里的版本号要根据你当时获取到的 LTS 版本号来确定安装完成后运行nvm use 20.11.0这条命令的作用是把当前终端会话使用的 Node.js 切换到你刚安装的版本。切换之后再执行node -v npm -v如果分别输出了v20.11.0和对应的 npm 版本号说明 Node.js 和 npm 已经安装成功。这里的原理是nvm 会修改系统 PATH 中的 Node.js 路径让它指向你当前选中的版本目录node和npm命令自然就关联到新版本了。3.3 配置 npm 镜像源Node.js 装好之后下一步就是改 npm 镜像源。这一步不是必须的但是在国内网络环境下几乎等于必须因为 npm 官方仓库的服务器在国外直接下载依赖包时经常超时或速度极慢。我们把 npm 的下载源切换到国内镜像仓库速度会快很多。推荐使用 npmmirror原来的淘宝 npm 镜像执行以下命令npm config set registry https://registry.npmmirror.com执行完后可以运行npm config get registry确认当前源地址已经变成镜像地址。这个设置会写入用户的.npmrc配置文件对当前用户的所有项目生效。这里要说明一下为什么改的是“registry”源地址而不是其他配置。npm 安装依赖时默认去官方仓库https://registry.npmjs.org/下载压缩包改源地址就是把这个下载地址替换成一个速度更快的镜像地址。除了网络下载速度镜像源还解决了某些依赖包在企业内网环境下无法访问外网的问题所以很多公司内部的 npm 仓库也采用类似的原理自建一套。3.4 用 VSCode 打开项目并验证基本运行Node.js 环境本身装好了接下来验证 VSCode 能否把这个环境“用起来”。先创建一个测试项目目录随意起个名字比如hello-node。然后在 VSCode 里点击“文件—打开文件夹”选中这个目录。在 VSCode 里打开集成终端快捷键是Ctrl \Mac 上是Cmd 。在终端里输入node -v如果能输出版本号说明 VSCode 正确识别了 Node.js。这里有一个很常见的问题刚刚在系统命令行里能用node命令但 VSCode 的集成终端却提示找不到命令。多半原因是 VSCode 是在 Node.js 安装之前启动的终端里的环境变量没有刷新。解决办法是关闭 VSCode 重新打开或者直接让终端执行refreshenvWindows重新加载环境变量。接着我们创建一个最简单的 Node.js 文件验证运行。在项目根目录新建index.js输入console.log(Hello, Node.js on VSCode!);在集成终端中执行node index.js如果终端输出Hello, Node.js on VSCode!说明 Node.js 环境已经可以正常执行代码文件了。到这一步基础的开发环境就算搭好了接下来我们需要把 VSCode 侧的配置再精进一下让开发体验更顺手。3.5 初始化 npm 项目并安装第一个依赖一个真实的 Node.js 项目不能只运行单个文件它通常会有依赖管理文件package.json。这个文件记录了项目名称、版本号、依赖列表、脚本命令等信息。在项目目录下执行npm init -y-y参数的意思是所有提示都用默认值直接生成package.json。如果不加这个参数npm 会一步步问你项目名、入口文件等问题对新手来说有点繁琐。执行后项目目录里会出现一个package.json文件。然后我们安装一个实际能用的依赖包。以lodash为例执行npm install lodash安装完成后项目里会出现node_modules目录和一个package-lock.json文件。node_modules目录存放的就是实际下载到本地的依赖文件package-lock.json则锁定了每个依赖包的具体版本号确保团队协作时大家安装的依赖版本完全一致。这一步的意义在于我们已经把“创建项目—初始化—安装依赖”的完整链路跑通了后面开发 Vue、React、Express 项目也都是同样的流程。3.6 安装 VSCode 关键插件VSCode 默认功能已经够用但装上几个关键插件能让开发体验有质的提升。针对 Node.js 开发我推荐这几款ESLintJavaScript 代码检查工具能在你写代码时实时标出语法错误、未定义变量、不推荐的写法。这是前端项目里最常用的插件之一。Prettier - Code formatter代码格式化工具统一代码风格。配合 VSCode 的“保存时自动格式化”功能写完代码按一下保存格式就变得整整齐齐。Error Lens把报错信息直接显示在代码那一行不用再打开“问题”面板查看非常直观。npm提供对package.json的快捷操作入口和 npm 脚本的快捷执行功能让我可以在 VSCode 的资源管理器里直接看到有哪些可运行的脚本。安装插件的方式都一样点击 VSCode 左侧扩展图标在搜索框输入插件名称找到对应插件后点击“安装”。装完 ESLint 和 Prettier 之后建议在设置里加一条配置{ editor.formatOnSave: true, editor.defaultFormatter: esbenp.prettier-vscode }这两行配置的作用是保存文件时自动用 Prettier 格式化避免你手动调整缩进和换行。需要提醒的是ESLint 和 Prettier 有时会在某条代码规则上“打架”比如一个要求必须加分号、另一个要求不加。遇到这种情况通常是在项目的.eslintrc配置文件里关掉冲突的那条规则或者安装eslint-config-prettier让两者兼容。4. 常见问题与排查技巧实录4.1 命令找不到node 不是内部或外部命令这是最经典的问题几乎每个新手都会遇到一次。在 Windows 命令行或 VSCode 终端输入node -v提示“node 不是内部或外部命令也不是可运行的程序或批处理文件”或者 macOS 提示command not found: node。出现这个问题的原因要么是 Node.js 没有正确安装要么是安装后 PATH 环境变量没有配置好。排查思路如下先确认安装是否成功去 Node.js 的安装目录看看是否存在node.exe文件。Windows 默认在C:\Program Files\nodejs\如果你用 nvm-windows则在 nvm 安装目录下的某个版本文件夹里。检查 PATH 环境变量Windows 下按Win R输入sysdm.cpl回车打开“高级—环境变量”在系统变量的 Path 里看看有没有 Node.js 安装目录的路径。没有的话手动添加。检查 nvm 是否生效如果你用的是 nvm-windows先执行nvm list看看有没有已安装的版本再执行nvm use 版本号切换版本。这里有一个细节修改环境变量后已经打开的命令行窗口不会自动刷新你必须新开一个窗口或者用refreshenv命令刷新否则修改不会生效。4.2 VSCode 终端能跑 cmd 命令却不识别 node另一个常见场景是系统自带的命令行里node -v正常但 VSCode 的集成终端里node命令报错。这个问题十有八九是 VSCode 启动时读取的环境变量不是最新的。原因是 VSCode 是在 Node.js 装好之前启动的它的终端进程启动时快照了当时的环境变量。解决办法就是把 VSCode 完全关闭注意是彻底退出不是关掉窗口然后重新打开终端就能读到最新的环境变量了。如果重启 VSCode 还不行可以再检查一下 VSCode 的终端设置。打开设置搜索terminal.integrated.env.windows看看是否有设置项覆盖了 PATH 变量。我之前遇到过有人在这里手动设置了一个 PATH 值结果把系统 PATH 整个覆盖了导致终端里所有全局命令都失效。这种情况直接清空这个配置项即可。4.3 npm install 速度慢或报错npm install卡住不动或速度极慢通常有两类原因一是网络问题npm 默认源在国外二是某个依赖包体积过大或编译环节耗时。网络问题的解决办法就是前面说的修改镜像源npm config set registry https://registry.npmmirror.com改完源之后如果还是慢可能是某些依赖包在镜像源里没有缓存这种情况建议检查一下当前源是否生效npm config get registry如果输出的是官方地址需要重新设置。如果镜像源已经生效但某个包仍然下载失败可以试试用npm cache clean --force清理缓存后重试。这里要告诫新手一点千万不要为了解决慢的问题去安装各种加速工具很多网上推荐的所谓加速方案实际上存在安全风险老老实实用官方镜像源或知名镜像源才是稳妥之道。4.4 npm 版本与 Node.js 版本不匹配安装完 Node.js 之后偶尔会遇到npm命令报错比如热词里提到的the requested module node:util does not provide an export named。这类报错常见有两种情况一是 npm 本身版本过低或过高与当前 Node.js 版本不兼容二是项目中的某个模块在启动时调用了当前 Node.js 不支持的 API。排查思路是先执行node -v和npm -v确认版本然后查看 Node.js 与 npm 的对应关系。官方文档里每个 Node.js 版本都绑定了某个 npm 版本Node.js 20 对应 npm 10Node.js 18 对应 npm 9。如果你发现 npm 版本和 Node.js 版本对不上可以执行以下命令升级或降级 npmnpm install -g npm10这里的10替换成你需要的 npm 主版本号。另一个可能性是你用了较高版本的 Node.js比如 Node.js 24而它尚处于早期或非稳定阶段某些功能还不完善。这时最稳妥的方式是回退到 LTS 版本。如果你用的是 nvm 管理版本切换版本非常方便nvm install 20 nvm use 204.5 全局模块安装后命令找不到有时候你执行了npm install -g some-cli但之后在命令行输入some-cli却提示找不到命令。这个问题在 Windows 上尤其常见原因是 npm 全局安装目录没有加入 PATH 环境变量。查看 npm 全局安装目录的命令是npm config get prefix在 Windows 上npm 的全局目录默认是C:\Users\用户名\AppData\Roaming\npm。如果这个目录不在 PATH 里你需要在环境变量中添加它。macOS 上用 nvm 管理时全局目录通常是当前 Node.js 版本目录下的bin文件夹nvm 一般会自动添加。我踩过这个坑的钱一次我在团队项目里需要用到某个命令行工具全局安装后死活提示命令找不到排查了半天才发现是 PATH 少了一个目录。那次之后我就养成习惯装完任何全局 CLI 工具第一件事就是检查它的可执行文件在哪个目录以及这个目录是否在 PATH 里。4.6 常见问题速查表为了方便你在实际操作中快速定位问题我整理了一个速查表覆盖了我这几年配环境遇到的大部分问题问题现象可能原因解决办法node 不是内部或外部命令Node.js 未安装 / PATH 未配置重装 Node.js 并检查环境变量VSCode 终端找不到 nodeVSCode 启动后环境变量才更新完全退出 VSCode 后重启npm install卡住不动npm 默认源访问慢切换 npmmirror 镜像源npm 报node:util之类错误npm 与 Node.js 版本不匹配升级或降级 npm或切换 Node.js 版本全局模块命令找不到全局目录不在 PATH 中手动添加 npm 全局目录到 PATHnvm use提示管理员权限Windows 下 nvm 切换版本需要权限以管理员身份运行命令行安装某个包时提示node-gyp报错编译原生模块缺少 C 构建工具安装 Visual Studio Build Tools 和 PythonVSCode 里运行代码时提示端口冲突上次服务进程未退出在终端找到进程并结束或者换个端口这个表不能覆盖所有场景但覆盖了新手阶段 90% 以上的环境问题。遇到问题时不要慌先看报错文本里的关键词再按表格里的思路逐条排查。5. 个人经验搭完环境后一定要做的三件事环境搭好并不代表结束我之前每次从零配置完一套开发环境还会顺手做三件事这里分享给大家。第一件事确认 VSCode 里的项目初始化流程已经跑通。新建一个测试项目用npm init -y初始化装一个依赖包跑一个简单的 Node.js 文件确认整个链路都没问题。很多人只验证到node -v输出版本号就认为环境装好了结果第一次创建项目时才发现 npm 源没配、全局模块装不了、VSCode 终端不识别命令一顿折腾下来挫败感特别强。第二件事用 VSCode 跑一次带断点的调试。点击代码行号左侧加一个红点断点然后按F5选择 Node.js 环境程序就会停在断点位置。这一步不是浪费时间它验证了 VSCode 和 Node.js 的调试通道是否畅通。调试功能是整个开发环境里最容易忽略但最值得提前验证的部分。第三件事写一个简单的.gitignore文件放到项目根目录把node_modules/加进去。这一步的意图是将来你若用 Git 管理代码node_modules这个目录不应该被提交到仓库因为它是可以通过npm install重新生成的。提前写好.gitignore能避免后续在代码仓库里上传几万个依赖文件的尴尬。最后再分享一个小心得环境搭建这种事看起来是一件“配好就完事”的机械操作但实际上它决定了你之后写代码时的心情和质量。配置混乱的环境会让每次运行都伴随着莫名其妙的报错而这些报错往往跟你的代码逻辑一点关系都没有。把环境一次配好后面写代码才能真正专注于代码本身。如果你按这篇文章搭完环境之后发现某个步骤跟你的情况不一致不用太纠结——不同的操作系统、不同的网络环境、不同的 Node.js 版本都会带来细微差异只要你理解了每一步在做什么遇到问题就能顺着思路排查下去。
返回列表