教程让你输入 node、npm install,你可能还不知道它们各自负责什么。先用一句会显示在屏幕上的话认识运行环境,再决定是否为所用工具安装。
这篇是技术基础选读:需要运行 JavaScript 项目或要求 Node.js 的命令行工具时再读。普通 AI 网页和 App 聊天通常无需安装它。适用于 Mac,先读《终端入门》;本文不要求已有编程经验。
先认识四个名字
| 名字 | 负责什么 | 本篇的例子 |
|---|---|---|
| JavaScript | 一种编程语言,用来写程序 | 写一行“显示这句话”的代码 |
| Node.js | 在电脑上执行 JavaScript 的运行环境 | node hello.js 运行这个文件 |
| npm | 管理项目依赖包、执行项目定义的脚本 | 安装练习里的小包,运行 hello 脚本 |
| nvm | 管理 Node.js 版本的工具 | 安装并选择本次练习用的版本 |
“包”是整理好供项目使用的一组代码及说明文件,“依赖”是项目需要的其他包。官方 Node.js 发行版通常带有 npm,因此装好后分别检查两个命令。
Node.js 本身不会给你一个 AI 聊天账号;某个项目若调用云端 AI,还要按项目说明配置相应服务。语言、运行环境、项目和模型服务要分别认识。参阅 Node.js 介绍和 npm 包说明。
概念示意:JavaScript文件由Node.js运行,npm管理项目中的包和脚本。
什么时候需要装,装哪个版本
先看你要运行的工具或项目的 README(项目说明),寻找“Requirements”“Node.js”“Installation”等部分。记录要求的版本范围,再选仍受官方支持、且符合要求的版本。
打开终端,逐行检查:
node -v
npm -v
显示 v24.21.0、11.19.0 这样的版本,表示当前终端找到了对应程序。显示 command not found 则还没找到它,原因可能是未安装,也可能是终端未加载安装路径。
截至 2026 年 10 月 12 日,官方版本表将 Node.js 22、24 都列为 LTS(长期支持版),26 为 Current,20 为 EOL(已结束支持)。**不能因为某个工具要求24,就要求所有22项目立即升级。**已有项目要先核对兼容性;新练习可选择符合要求的受支持 LTS。下面固定使用24.21.0,方便对照实测。
Mac 安装主路径:用 nvm 选择版本
本篇只展开 nvm 这一条路径。它按用户管理版本,适合以后遇到不同项目要求的读者;已有可用且符合要求的 Node.js,可以直接进入练习。不要叠加安装来试图解决不明报错。
在个人文件夹新建练习目录,逐行执行:
cd ~
mkdir boxai-node-demo
cd boxai-node-demo
touch ~/.zshrc
curl -fL https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh -o install-nvm.sh
若已有同名目录,换一个新名字,后面的路径也对应修改。touch 在文件不存在时创建它,存在时保留内容。下载行从 nvm 维护者仓库取得指定版本的安装脚本;下载报错时先处理网络,不执行后续安装。
可以先在文本编辑器里打开 install-nvm.sh 查看。确认来源后运行:
bash install-nvm.sh
安装器会下载 nvm,并尝试向你的 shell 配置加入加载语句;这是维护者文档描述的行为。已有特殊终端配置时按其说明处理,不反复手动追加同一段配置。
关闭这个终端窗口,重新打开一个窗口,再逐行执行:
command -v nvm
nvm install 24.21.0
node -v
npm -v
第一行应显示 nvm;第二行首次下载 Node.js。成功后,本次实测最后两行分别显示 v24.21.0 和 11.19.0。下载过程中 nvm 校验了官方二进制文件的校验值。版本不同要回到项目要求核对,别只看“能显示数字”。
本次在独立的 nvm 安装目录和独立 .zshrc 中从头安装,再启动新的交互式 zsh 核对;实际下载来自 nodejs.org,电脑已有Git。首次使用Mac若安装器提示需要命令行开发者工具,先按系统与nvm文档的提示完成准备,再重试;安装报错时先停下来处理。没有重跑 macOS .pkg 安装器,也没有测试 Windows。
运行第一段 JavaScript
重新进入练习目录:
cd ~/boxai-node-demo
nano hello.js
在编辑区域输入以下代码(不要输入代码块标记):
console.log("你好,AI");
console.log 把括号里的内容显示到终端;引号说明这是一段文字。先理解这一行,不必同时学习整套语法。
按 Control + O 保存,回车确认文件名,再按 Control + X 退出。然后执行:
node hello.js
应显示:
你好,AI
再打开同一个文件,把代码改为:
console.log("我已经会运行 JavaScript 了");
保存退出,再运行 node hello.js,就会显示新文字。程序是文件中的代码;终端中的 node hello.js 是让运行环境执行它的命令。
实测完成了原版运行、修改同一文件后运行和新 shell 加载环境。编辑器保存按键是操作说明,本次没有重新录制编辑器界面。
真实终端输出排版,展示版本、两版程序和npm脚本结果;不是软件界面截图。
可选练习:npm 怎么认识一个项目
下载文末材料包并解压,进入含 package.json 的 b4 文件夹。可以用访达确认位置,再在终端输入 cd (末尾有空格)、拖入该文件夹、按回车。先读 README 和文件内容。
package.json 是项目清单。练习清单中有:
"scripts": {
"hello": "node hello.js",
"notice": "node notice.js"
}
这里仅展示清单的一部分,不要单独把这段保存成完整清单。材料包提供完整文件。在这个文件夹执行:
npm run hello
npm 会查找 hello 这个脚本,再执行右侧的 node hello.js。运行脚本与安装依赖是不同操作。
材料里还带了原创 club-notice 小包:只提供虚构读书会的一句通知,无网络请求或安装脚本。清单用 file:./packages/club-notice 表明依赖来自材料包中的文件夹。逐行执行:
npm install --ignore-scripts --offline --no-audit --no-fund
npm run notice
第一行把这个本地包连接到项目依赖中,关闭本练习不需要的联网审计等操作,并跳过安装生命周期脚本;第二行运行我们已经查看的通知脚本。本次实际输出:
青禾社区读书会:10月24日14:00–15:00,社区二楼活动室。
你会看到 node_modules(安装的依赖)和 package-lock.json(依赖解析记录)。这个练习没有下载第三方包,也没有调用 AI;这句话来自原创代码中的固定文本。
真实项目的 npm install 可能下载第三方代码并执行安装脚本,npm run 会执行项目定义的命令。先核对项目来源、README、清单和脚本。练习里的离线参数不适合直接照搬到需要联网安装的其他项目。npm 安装说明和脚本说明介绍了这些区别。
报错时先看哪一项
| 看到什么 | 先做什么 |
|---|---|
nvm: command not found |
重开终端,检查安装器是否找到 .zshrc;按 nvm 文档核对加载语句 |
Cannot find module / MODULE_NOT_FOUND |
运行 pwd、ls,检查当前目录、文件名及依赖;本文故意运行不存在的文件时得到此错误 |
SyntaxError |
对照代码检查英文引号与括号;本文故意漏写引号时已复现 |
EACCES / 权限问题 |
先检查安装位置及旧配置,不直接加 sudo 重试;用户目录安装仍可能受权限或既有配置影响 |
有多个 Node.js 版本时,nvm use 24.21.0 可选择当前终端使用的版本。它不会证明所有项目都兼容该版本。下载慢先确认官网访问;镜像和全局 npm 源修改留给确实遇到下载问题的排查,本篇练习不需要改全局源。
材料与下一步
下载 Node.js 练习材料:原创两版程序、完整项目清单、本地小包、依赖锁定记录、README 和匿名化实测记录。包内不含 Node.js 安装文件或 node_modules,先读说明再运行。
本篇达到目标:能说清 Node.js 和 npm 的职责,按项目要求检查版本,运行并修改自己的文件。需要下载项目时继续读《Git 与 GitHub 入门》;需要执行 Python 脚本时读《Python 入门》。技术基础按用途选读。
封面背景由本机 ComfyUI / Z-Image-Turbo 生成,标题由代码排版;正文图为概念示意或真实输出排版。