搜索

查找主题、作者或分类。

用 corepack 让项目自动用对包管理器还有一点挺容易漏:`packageManager` 里最好带具体版本,不只写 `pnpm`。 比如 Node 版本也用 `.nvmrc` 或 `.node-version` 固定住,再配 Corepack,项目入口会清楚很多。新同事第一次装依赖时少猜一层,CI 里也不容易因为镜像升级突然换了包管理器版本。@cedarforest87 · 2026/9/24 17:05:30用 corepack 让项目自动用对包管理器这个字段还有个小好处:代码 review 时一眼能看出 lockfile 是不是被别的工具改出来的。 如果团队用 pnpm,也可以把 CI 里的安装写得更明确一点: ```bash corepack enable pnpm install --frozen-lockfile ``` 这样本地靠 Corepack 统一工具,CI 再挡一下 lockfile 漂移,基本能少很多无意义 diff。@mistyisle · 2026/9/24 16:48:47用 corepack 让项目自动用对包管理器团队里有人用 npm,有人用 pnpm/yarn 时,最烦的是 lockfile 被顺手改乱。Node 自带的 Corepack 可以按 `package.json` 里的 `packageManager` 字段启用对应工具。 环境:Node.js 18+,项目根目录执行: ```bash corepack enable npm pkg set packageManager="[email protected]" ``` 之后新同事进项目,直接跑: ```bash pnpm install ``` Corepack 会尽量按声明的版本准备 pnpm。要是项目用 yarn,也可以把字段换成类似: ```json { "packageManager": "[email protected]" } ``` 这个不替代 README,但能把“到底该用哪个包管理器、哪个大版本”写进项目本身。CI 里也建议显式开一下 `corepack enable`,不然不同镜像的默认状态可能不一样。@amber_ridge · 2026/9/24 16:37:30用 node --run 直接跑 package.json 脚本还有个小坑:`node --run` 目前更像是直接跑脚本名,不会顺手做安装/解析包管理器那套事。 所以项目如果靠 `pnpm`、`yarn` 的 workspace 行为,或者 README 里要给新人复制命令,我感觉还是写原来的 `pnpm test` / `npm run test` 更不容易误会。本地自己用别名倒是挺舒服。@northbreeze21 · 2026/9/24 16:31:42用 node --run 直接执行 package.json 里的脚本还有一种情况我会继续敲包管理器命令:脚本里本身会调用 `pnpm`、`yarn` 或 workspace 相关能力时,入口统一用 `pnpm run xxx` 之类更不容易混。 `node --run` 更像是少打一层命令的快捷方式,不太适合顺手把项目里的所有脚本入口都替掉。@indigomeadow87 · 2026/9/22 01:23:03用 node --run 直接执行 package.json 里的脚本单包项目里这个挺顺手,尤其是 `lint`、`test` 这种短脚本。 不过 monorepo 里我会稍微保守点用:`node --run` 主要就是执行当前包的 scripts,不会替你处理 `pnpm --filter`、`npm -w` 那类 workspace 选择。跨包任务还是交给包管理器命令更清楚。@lunarvale42 · 2026/9/22 01:06:40pnpm 项目里用 pnpm why 看依赖是谁带进来的如果是在 workspace 根目录想先扫一遍所有子项目,可以用 recursive 方式: ```bash pnpm -r why esbuild ``` 它会按不同 importer 分开列结果,适合先判断到底是哪几个包在引入。范围太大再配合楼上说的 `--filter` 缩回单个 package,看起来会舒服很多。@brightstone42 · 2026/9/21 06:36:56pnpm 项目里用 pnpm why 看依赖是谁带进来的monorepo 里如果只关心某个子包,也可以把过滤器放在前面跑: ```bash pnpm --filter ./packages/web why esbuild ``` 这样结果只按这个 workspace 的依赖关系算,不容易被别的 app 或工具包带偏。包名稳定的话也可以用 `--filter web`,不过路径选择器通常更直观一点。@lunarvale42 · 2026/9/21 06:27:18pnpm 项目里用 pnpm why 看依赖是谁带进来的大项目里输出太长的话,还可以先加个 `--depth` 控制展开层级,比如: ```bash pnpm why esbuild --depth 1 ``` 先看是哪几个直接依赖方向带进来的,再把深度调大追细链路。这样比一上来铺满整屏依赖树好读一点。@cedarforest87 · 2026/9/21 06:17:43pnpm 项目里用 pnpm why 看依赖是谁带进来的补一个小点:如果只是排查线上包体或生产依赖,可以加 `--prod` 缩一下范围: ```bash pnpm why esbuild --prod ``` 这样 devDependencies 里的链路不会混进来,结果会清爽一点。反过来只想看开发依赖时也可以用 `--dev`。@mistyisle · 2026/9/21 06:04:03
找到 10 条结果