在 Ubuntu 上做 Node.js 开发,依赖管理几乎是每个项目都绕不开的一步。真正需要先想清楚的,不是命令怎么敲,而是该用 npm 还是 Yarn、哪些包该进 dependencies、哪些只该留在 devDependencies。下面就按项目实际操作流程拆开说明,帮助你从初始化到部署都用一套清晰的方法把依赖管住。
Ubuntu 上用 npm 管理依赖
npm 是 Node.js 自带的包管理器,安装好 Node.js 后通常就能直接使用,不需要额外配置。对大多数项目来说,它也是最直接的起点。

先用 npm init 建立项目清单
在项目根目录执行 npm init,按提示填写名称、版本等信息后,会生成一个 package.json 文件。这个文件可以理解为项目依赖清单,后续安装过哪些包、项目名称和版本信息,都会记录在这里。
npm init
安装依赖时,区分生产依赖和开发依赖
安装普通依赖时,可以使用 npm install <包名> --sa ve,包名会写入 dependencies。这类依赖通常是项目运行时必须存在的内容。
如果安装的是测试框架、构建工具这类只在开发阶段使用的包,则使用 npm install <包名> --sa ve-dev,它们会进入 devDependencies,生产环境一般不需要这部分。
npm install <包名> --sa ve
npm install <包名> --sa ve-dev
拿到项目后如何安装、更新和删除依赖
如果是接手已有项目,直接执行 npm install,npm 会按照 package.json 中记录的内容安装依赖。
更新依赖可以使用 npm update;删除某个不再需要的包,则执行 npm uninstall <包名>。
npm install
npm update
npm uninstall <包名>
Ubuntu 上用 Yarn 管理依赖
Yarn 是另一个常见选择,整体使用逻辑和 npm 接近,但在锁定依赖版本这件事上更容易让团队保持一致。

先安装 Yarn,再初始化项目
在 Ubuntu 上可以先执行下面的命令安装 Yarn:
sudo apt-get install yarn
安装完成后,使用 yarn init 初始化项目,同样会生成 package.json。
yarn init
Yarn 的关键区别:自动记录依赖并生成 yarn.lock
使用 yarn add <包名> 安装依赖时,Yarn 会自动把依赖写入 dependencies,同时生成一个 yarn.lock 文件。
yarn.lock 的作用是锁定每个依赖的具体版本,这样团队成员在不同机器上安装出来的依赖结果会更一致,能减少环境差异带来的问题。
yarn add <包名>
开发依赖、安装全部依赖、更新与删除命令
开发阶段专用依赖可以用 yarn add <包名> --dev,它会进入 devDependencies。
安装项目全部依赖时,可以执行 yarn 或 yarn install。更新某个依赖用 yarn upgrade <包名>,删除依赖则用 yarn remove <包名>。
yarn add <包名> --dev
yarn
yarn install
yarn upgrade <包名>
yarn remove <包名>
npm 和 Yarn 怎么选
如果你希望开箱即用,安装好 Node.js 就直接开始,npm 已经足够覆盖初始化、安装、更新和删除依赖这些日常工作。
如果你更看重团队协作时的版本一致性,Yarn 生成的 yarn.lock 会更容易帮助你控制安装结果,尤其适合多人协作场景。
两者的核心思路其实一致:都围绕 package.json 管理依赖,只是命令形式和锁定版本的习惯略有不同。选定一种后,尽量在同一个项目里保持一致,避免团队成员混用导致依赖状态难以追踪。
部署时要注意哪些文件
部署 Node.js 项目时,文中的建议是把 node_modules 文件夹和 package.json(或 yarn.lock)文件一起上传。这样可以尽量确保不同环境中安装和运行的依赖版本保持一致,减少上线后因为版本偏差带来的问题。

无论你最终使用 npm 还是 Yarn,真正重要的是把依赖清单、依赖类型和版本控制这三件事处理清楚,这样项目交接、协作和部署都会省心很多。







