选对包管理器,事半功倍
前端项目一启动,第一件事往往是初始化项目依赖。npm、yarn、pnpm 三者各有特点,选择合适的工具能减少后期维护成本。如果你的团队注重稳定性,npm 是最稳妥的选择,毕竟它和 Node.js 捆绑发行,兼容性好。但如果你追求安装速度和磁盘空间利用率,pnpm 的硬链接机制就显得格外实用,尤其在多项目共用依赖时,节省的空间可能高达几个 GB。
锁定版本,避免“昨天还好好的”
你有没有遇到过这样的情况:本地开发一切正常,CI 流水线却突然报错?很大概率是某个依赖更新了小版本,引入了不兼容改动。这时候 package-lock.json 或 yarn.lock 就成了救命稻草。确保这些 lock 文件提交到 Git,团队成员使用相同的依赖树,才能避免“在我机器上能跑”的尴尬。
定期更新依赖,别让技术债堆积
长期不更新依赖就像家里堆满旧报纸,迟早会出问题。安全漏洞往往藏在陈旧的包里。不妨每月花半小时运行一次 npm outdated,看看哪些包需要升级。升级时优先处理带有安全警告的包,可以用 npm audit 快速定位风险点。自动化工具如 Dependabot 也能帮你自动提 PR,省心不少。
合理组织依赖关系
开发时顺手装包很容易,但别忘了区分 dependencies 和 devDependencies。像 webpack、babel 这类只在构建时使用的工具,必须放在 devDependencies。否则部署时会把不必要的包一起打包上线,不仅浪费空间,还可能带来安全隐患。
{
"name": "my-project",
"version": "1.0.0",
"dependencies": {
"lodash": "^4.17.21"
},
"devDependencies": {
"webpack": "^5.88.0",
"jest": "^29.6.0"
}
}
使用 .npmrc 控制行为
团队协作中,统一配置很重要。通过项目根目录下的 .npmrc 文件,可以强制指定 registry、关闭脚本执行、设置缓存路径等。比如你想切换到国内镜像源加速安装:
registry=https://registry.npmmirror.com
unsafe-perm=false
这样每个成员都不用手动配置,提升了环境一致性。
清理无用包,保持轻盈
项目做着做着,总会残留一些不再使用的包。它们不仅拖慢安装速度,还可能成为安全扫描的干扰项。可以借助 depcheck 这类工具分析项目,找出未被引用的依赖。删之前记得确认一遍,避免误删动态加载或配置文件中使用的模块。
脚本规范化,降低上手门槛
一个清晰的 scripts 字段能让新同事快速理解项目怎么跑起来。不要写一堆含义模糊的命令,比如 start:dev、build:prod,而是用明确命名表达意图:
{
"scripts": {
"start": "npm run serve:dev",
"serve:dev": "webpack serve --mode development",
"build": "npm run build:prod",
"build:prod": "webpack --mode production"
}
}
这样即使不了解细节的人,也能从脚本名猜出用途。