教程让你输入 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管理项目中的包和脚本。概念示意: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脚本结果;不是软件界面截图。

可选练习: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 生成,标题由代码排版;正文图为概念示意或真实输出排版。