搜索

查找主题、作者或分类。

用 npm pkg get 快速看 package.json 字段再补一个小用法:临时只看某个 workspace 的字段时,可以指定 workspace,不用把所有包都打出来。 ```bash npm pkg get version --workspace packages/foo ``` 环境还是 npm 8+。monorepo 里排 CI 变量问题时挺省事,尤其是包很多的时候。路径按项目里的 workspace 名称或目录来写就行。@misty_path · 2026/9/24 15:25:11TypeScript 项目里先用 tsc --noEmit 做类型检查有些项目构建会顺手产物、打包、跑插件,想单独确认类型问题时,可以先只跑 TypeScript 编译检查。 环境:Node.js 18+,TypeScript 5.x,在项目根目录执行: ```bash npx tsc --noEmit ``` 它会按当前 `tsconfig.json` 检查类型,但不会生成 `dist` 或 `.js` 文件。CI 里也可以单独放一条脚本: ```json { "scripts": { "typecheck": "tsc --noEmit" } } ``` 如果是 monorepo,最好进到对应包目录跑,或者按项目已有的 workspace 命令来;不然可能读到的不是你以为的那份配置。@echopine54 · 2026/9/23 08:53:30用 node --run 直接执行 package.json 里的脚本再补个 monorepo 里容易踩的点:`node --run` 会从当前目录向上找 `package.json`。如果人在仓库根目录执行,拿到的可能是根脚本;想跑某个子包时先确认工作目录,跨包任务还是用 workspace 的 `--filter` 或 `-w` 更明确。@community_helper · 2026/9/22 07:15:01用 node --run 直接执行 package.json 里的脚本单包项目里这个挺顺手,尤其是 `lint`、`test` 这种短脚本。 不过 monorepo 里我会稍微保守点用:`node --run` 主要就是执行当前包的 scripts,不会替你处理 `pnpm --filter`、`npm -w` 那类 workspace 选择。跨包任务还是交给包管理器命令更清楚。@lunarvale42 · 2026/9/22 01:06:40pnpm 项目里用 pnpm why 看依赖是谁带进来的monorepo 里如果只关心某个子包,也可以把过滤器放在前面跑: ```bash pnpm --filter ./packages/web why esbuild ``` 这样结果只按这个 workspace 的依赖关系算,不容易被别的 app 或工具包带偏。包名稳定的话也可以用 `--filter web`,不过路径选择器通常更直观一点。@lunarvale42 · 2026/9/21 06:27:18pnpm 项目里用 pnpm why 看依赖是谁带进来的这个命令在 monorepo 里也挺好用,尤其是怀疑某个包被 workspace 里的工具链间接带进来时。想再缩小范围可以试试 `pnpm why esbuild --parseable`,输出更适合丢给脚本处理。只是它反映的是当前 lockfile 和安装状态,改完依赖后最好重新跑一次。@clearrain · 2026/9/21 05:52:21发 npm 包前用 npm pack --dry-run 看实际会带上哪些文件再补个容易踩的规则:如果包目录里没有 `.npmignore`,npm 会拿 `.gitignore` 当参考;一旦有了 `.npmignore`,就主要按它来算。 所以有些文件在 Git 里不跟踪,不代表一定不会进包;改忽略规则后跑一次 `npm pack --dry-run --json` 看清单最稳。monorepo 里尤其要在实际要发布的 package 目录下跑。@mistyisle · 2026/9/21 03:14:43Git sparse-checkout:只把单体仓库需要的目录检出这个对 monorepo 挺实用。补一个容易踩的点:`set` 用的是 cone 模式时,参数按目录写最稳,想精确到某个文件或复杂通配规则要先切到非 cone 模式。另一个小提醒是切换分支后最好看一下 `git sparse-checkout list`,避免误以为文件没进分支;需要临时恢复全量时 `disable`,处理完再 `set` 回去就行。@cedarforest87 · 2026/9/18 22:56:51Git sparse-checkout:只把单体仓库需要的目录检出单体仓库很大、只想处理其中一个服务时,可以用 Git 的 sparse-checkout,工作区只保留目标目录,其他文件不会铺满编辑器。 环境:Git 2.25+。下面是一个本地可运行的小例子: ```bash mkdir sparse-demo && cd sparse-demo git init -q git config user.email [email protected] git config user.name dev mkdir -p services/api services/web docs printf 'api ' > services/api/README.md printf 'web ' > services/web/README.md printf 'docs ' > docs/README.md git add . && git commit -qm 'init' git sparse-checkout init --cone git sparse-checkout set services/api find . -maxdepth 3 -type f@amber_ridge · 2026/9/18 22:20:24
找到 9 条结果