切换·Esc 返回

包管理npm

后端入门
安装项目需要的代码包,并运行项目命令

npm 根据 package.json 安装项目需要的代码包,也能运行项目定义的脚本。操作前先确认位于项目根目录和包名正确;陌生依赖可能执行安装脚本,不要随意安装或用 sudo 绕过问题。

package.json · 清单 "react": "^19.0.0" "vite": "^6.0.0" "scripts": dev / build
npm
install
node_modules · 仓库 📦 react 📦 vite 📦 …共 42 个包

什么时候用

  • package.json 是清单:项目叫什么、装了哪些包、能跑哪些命令
    package.json
    "dependencies": react, vite
    "scripts": dev, build
    清单:装了哪些包、能跑哪些命令
  • npm install:照着清单把依赖全搬回来
    $ npm install⸨░░░░░░⸩ idealTreeadded 42 packages in 6s
  • npm run dev:跑 scripts 里写好的快捷命令
    $ npm run dev> vite✓ Ready in 1.2s
  • 克隆别人的项目先 install:清单在,仓库一键重建
    ☁️ 克隆项目→ install →📦 仓库重建

什么时候不用

  • 不要直接修改 node_modules,重新安装依赖时改动会丢失
    📁 node_modules / react✎ 手动改
    下次 install,你的改动全被覆盖
  • 不要把 node_modules 提交进 Git,它可以根据配置重新安装
    node_modules 380MBgit push →
    几百 MB 垃圾进仓库,该进 .gitignore
  • 删掉 package.json:清单没了,项目装了啥谁也说不清
    📄 package.json🗑
    清单没了,装了啥谁也说不清
  • 报错就乱装一堆包试:依赖越堆越乱,冲突更多
    dependencies:
    react, vue, jquery, lodash, moment, axios, fetch-huh…
    报错就乱装一堆包,依赖越堆越乱
组成结构 · Anatomy
{   "name": "my-first-page",   "dependencies": { "react": "^19.0.0" },   "scripts": { "dev": "vite", "build": "vite build" } }
1项目名name项目的名字和版本,发布、分享时用到
2依赖清单dependencies装了哪些包、什么版本;install 就照它搬货
3快捷命令scriptsnpm run dev 跑的就是这里写的命令
常见变体 · Variants
安装install
npm install
装新包,或重建 node_modules
运行脚本run
npm run dev
执行 scripts 里的快捷命令
卸载uninstall
npm uninstall lodash
包用不上了,从清单划掉
锁版本lockfile
package-lock.json
团队统一版本,别手动改它
典型使用场景
package.json 清单长这样
package.json
{
  "name": "my-first-page",
  "dependencies": { "react": "^19.0.0" },
  "scripts": { "dev": "vite", "build": "vite build" }
}
npm install 搬依赖
zsh — my-first-page
$ npm install ⸨████████░░⸩ reify: react added 42 packages in 6s 包裹全部搬进 node_modules,仓库自动重建
node_modules 别动它
my-first-page
📁 node_modules380 MB · ⚠ 自动生成,勿动
📄 package.json清单
📄 .gitignore里面写着 node_modules 和 .env
npm run dev 一键启动
zsh — my-first-page
$ npm run dev > my-first-page@0.1.0 dev ✓ Ready in 1.2s → http://localhost:3000 scripts 里的快捷命令,一条顶一串