前端工程化的基础知识

40 阅读1分钟

package.json 和 package-lock.json的区别

package.json 和 package-lock.json 是 npm 管理依赖时的核心文件,二者定位、作用和生成逻辑完全不同,核心区别可总结为:

  • package.json 是「依赖声明清单」
  • package-lock.json 是「依赖安装快照」,记录安装时的精确依赖版本、完整依赖树、下载地址、哈希值等,保证 “装的和上次完全一样”。

两个都是前端开发的时候必须提交到远程仓库的文件,用于保证团队协作。

devDependency和dependency的区别

  • dependencies 是项目「运行时必须的依赖」这类依赖是项目能正常运行的核心,缺少会导致功能报错。

适用场景

-   前端业务代码直接调用的库(如 `axios` 发请求、`lodash` 处理数据、`react` 渲染页面);
-   后端服务的核心框架(如 `express``koa``mongoose`);
-   运行时必须的工具(如 `dayjs` 处理时间、`jsonwebtoken` 生成 token)。
  • devDependencies 仅「开发 / 构建阶段需要」,运行时可移除,因此如果是仅用于开发/构建的工具切记不要安装到dependency里面,不然会无效增加最终打包体积。这类依赖仅用于开发、构建、测试流程,项目运行时完全不需要,移除后不影响业务功能。

适用场景

-   代码检查工具(eslint、prettier);
-   构建 / 编译工具(webpack、vite、babel、tsc);
-   测试工具(jest、vitest、cypress);
-   开发环境辅助工具(nodemon、cross-env);
-   样式预处理工具(sass-loader、less-loader)。