# @casomoltd/tooling 中文文档

规范地址：https://npmcn.com/package/%40casomoltd/tooling/

版本：0\.49\.1
npm 元数据更新时间：2026-11-07T13:22:39.648Z
中文译文更新时间：2026-11-09T07:40:02.002Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40casomoltd/tooling
原文对照：https://npmcn.com/package/%40casomoltd/tooling/?lang=original
项目主页：https://github.com/casomoltd/tooling#readme
源码仓库：https://github.com/casomoltd/tooling

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：391 kB，97 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：3 个
- peer 依赖：knip \>=5，next \>=16，jscpd \>=4，react \>=19\.2，eslint \>=9\.24，typescript \>=5，@commitlint/cli \>=20，eslint-config-next \>=16，eslint-plugin-sonarjs \>=3
- 首次发布：2026-07-10T08:27:31.459Z
- 最新版本发布：2026-11-07T13:22:39.267Z
- 近 30 天下载量：3916（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：65（近 12 个月 65 个）

## 中文简介

卡索莫共享的dev配置:ESLint,Prettier,contlint,knip & jscpd预设,dev CLIs(git hooks,可读性,截图,设计规格),并导入了构建时间数据和帮助站点(Buttondown引擎,共享组织)

## 安装

```sh
npm install @casomoltd/tooling
```

也可以使用：`pnpm add @casomoltd/tooling`、`yarn add @casomoltd/tooling`、`bun add @casomoltd/tooling`

## README

# @ casomoltd/ 工具

共享林入,格式化,承诺配置,以及Casomo Ltd repos的CLI工具.

## 包括什么

### 出口

| 导出 | 说明 |
| --- | --- |
| `@casomoltd/tooling/eslint` | `createBaseConfig()` ——ESLint平面配置与Next.js, TypeScript, SonarJS 和房屋规则([文件/日记](https://npmcn.com/package/%40casomoltd/tooling/docs/lint.md)(中文(简体) ) |
| `@casomoltd/tooling/eslint-lib` | `createLibConfig()` —— TypeScript 库的同房规则([文件/日记](https://npmcn.com/package/%40casomoltd/tooling/docs/lint.md)(中文(简体) ) |
| `@casomoltd/tooling/prettier` | 高级配置对象 |
| `@casomoltd/tooling/commitlint` | 承诺配置 `no-ai-attribution` 插件 |
| `@casomoltd/tooling/knip` | 未用出口/依赖的 Knip 配置 |
| `@casomoltd/tooling/jscpd` | 复制粘贴检测配置 |
| `@casomoltd/tooling/readability` | 页面或通讯文章的可读性评分: `scoreText()`, (中文(简体) ), `FORMULAS` (这七种公式得分), `extractText()` 财务报告和审定财务报表 `discoverSlugs()` 下一页的文本, `extractMdxText()` 用于 MDX 页面和 `routeText()` 一条路线是一起的,和 `DEFAULT_MAX_GRADE`, (中文(简体) ), `DEFAULT_WORD_SUBS` 财务报告和审定财务报表 `MIN_SCORABLE_WORDS` |
| `@casomoltd/tooling/identity` | `CASOMO_ORGANIZATION`(原始内容存档于2017-03-21). the schema.org `Organization`包括,每个Casomo网站在其JSON-LD中作为出版商的名称; `LINKEDIN`以及公司的公开登记, `COMPANY_REGISTER`, (中文(简体) ), `ICO_REGISTER` 财务报告和审定财务报表 `REGISTERED_OFFICE`,与 `COMPANY_COLOPHON`各站点的台词都包含着它们 `CASOMO_UTM` 与 `tagged()`,每个 Casomo 链接和签名的值都会从([类型](https://npmcn.com/package/%40casomoltd/tooling/identity/index.d.mts)) (中文(简体) ). App代码在构建时导入它,所以在运行时只安装生产依赖的站点将软件包列在 `dependencies` |
| `@casomoltd/tooling/buttondown` | 使用 `buttondown` 命令:共享的电子邮件块和外观(`createEmailBlocks`, (中文(简体) ), `emailBaseCss`, (中文(简体) ), `composeWebSkin`),一个colophon作为 `socials` 链接或电子邮件 HTML(`colophonLinks`, (中文(简体) ), `colophonHtml`, (中文(简体) ), `tokenReader()`, (中文(简体) ), `loadSettings()` 财务报告和审定财务报表 `buildPayload()`,以及 `EMAIL_CHROME_HIDES` 财务报告和审定财务报表 `WEB_CHROME_HIDES` (单位:千美元)[文件/按钮.md](https://npmcn.com/package/%40casomoltd/tooling/docs/buttondown.md)(中文(简体) ) |
| `@casomoltd/tooling/tally` | 将Tally形式作为代码的回放:形式模型和翻译(`toBlocks`, (中文(简体) ), `toSettings`, (中文(简体) ), `blockNames`, (中文(简体) ), `FormIndex` 用来设计一个街区, `blockSelectors()`· ; `./tally/paths` 单为代号 一个街区没有建造者; `./tally/events` 用于嵌入窗体的一页:其嵌入和窗体地址,以及浏览器中嵌入内容的读取器; `./tally/frame`,该表单作为下一个站点的反应组件(`TallyFrame`,以及 `useBrowserValue` 读取其隐藏的字段) ([文档/tally.md](https://npmcn.com/package/%40casomoltd/tooling/docs/tally.md)(中文(简体) ) |
| `@casomoltd/tooling/attribution` | `utmTagger(lists)`: 从一个站点的列表中标记与 UTM 值的链接的函数, 拒绝其中不包含的值,以及 `UTM_PARAMS`,它写的参数名称, 对于一个读取标记回. `identity`是因为 `tagged()` 这是卡索莫自己的名单[类型](https://npmcn.com/package/%40casomoltd/tooling/attribution/index.d.mts)(中文(简体) ) |
| `@casomoltd/tooling/signature` | Gmail和Outlook的电子邮件签名必须是什么`GMAIL_LIMIT`, (中文(简体) ), `DROPPED_MARKUP`, (中文(简体) ), `EXPORT_SCALE`, (中文(简体) ), `PNG_RGB`)和读者在一个网站的测试中用(`imageTags`, (中文(简体) ), `hrefs`, (中文(简体) ), `attribute`, (中文(简体) ), `readPng`, (中文(简体) ), `escapeRegExp`(三); `signatureFaults(facts)` 管理一个网站的签名和它自己的事实的每个共享检查,并列出失败之处 `cacheFault(headers)` 判断其图像所服务的标题; 无测试框架([类型](https://npmcn.com/package/%40casomoltd/tooling/signature/index.d.mts)(中文(简体) ) |
| `@casomoltd/tooling/retention` | 正如每个网站的隐私页面所指出: `TALLY_CONTACT_MESSAGE_MONTHS`, (中文(简体) ), `CONTACT_INBOX_DAYS`, (中文(简体) ), `CONVERSATION_RECORDS_MONTHS`塔莉的备用窗口, `TALLY_BACKUP_DAYS` 与 `TALLY_BACKUPS_URL` (单位:千美元)[类型](https://npmcn.com/package/%40casomoltd/tooling/retention/index.d.mts)) (中文(简体) ). 在一个时期里,只有一个站点的表格留在那个站点 |

### Bin 命令

| 命令 | 说明 |
| --- | --- |
| `check-version` | 推前后卫——如果 `package.json` 版本没有改变 vs `origin/main` |
| `check-tags` | 推倒前的警卫——推动 `main`, 想要( 想要) `push.followTags`,所以版本标记船 与它的起落 |
| `check-linear` | 预推后卫——拒绝将合并承诺推向遥控器. 历史是线性的;一个分支通过再定位赶上. 只有推力加到什么才被判断 所以合并在远程停留 |
| `pre-push` | Husky 预推钩-推出门([它的运行](https://npmcn.com/package/%40casomoltd/tooling/docs/quality-gates.md#the-hooks)(中文(简体) ) |
| `check-routes` | Next.js 站点预推闸口——开始 `next start` 反对建筑 `check` 请求中的每一页 `/sitemap.xml` 并遵守网站的承诺`routes.links` 内 `casomo.config.mjs`,并且每个表格 `tally` 如果任何最终答复不是200(或[怎么样](https://npmcn.com/package/%40casomoltd/tooling/bin/check-routes.mjs)) (中文(简体) ). 运行它 `"check:routes": "check-routes"`· ; [为何要推来推去](https://npmcn.com/package/%40casomoltd/tooling/docs/quality-gates.md#check-owns-the-build) |
| `pre-commit` | 胡斯基预承诺钩-跑 `npm run check` |
| `commit-msg` | Husky 承诺-msg 钩子——运行承诺,然后 `check-listed-files` |
| `check-listed-files` | 拒绝更改仍在列表中的文件的承诺 `eslint-suppressions.json`,除非 `Lint-deferred:` 拖车说为什么[文件/日记](https://npmcn.com/package/%40casomoltd/tooling/docs/lint.md)(中文(简体) ) |
| `readability` | 测量页面内容的读取难度 |
| `screenshot` | 通过 Playwright 捕获一个 dev 服务器页面—— 代理的视觉反馈循环 |
| `build-report` | 将一个 Typst 客户端报告编译为 PDF , 并附带房屋模板 |
| `render-figures` | 将设计 spec 的美人鱼图交给静态 SVG |
| `spec-check` | 检查设计 spec 的锚、 内容、 数字和编号 |
| `check-private-refs` | 在公共回购中,拒绝私人追踪器链接或以下所列名称 `privateRefs` 内 `casomo.config.mjs` |
| `check-personal-data` | 拒绝电子邮件、国家保险号码、联合王国手机号码、出生日期或当地拒收姓名 `personalData` 内 `casomo.config.mjs` |
| `buttondown` | 保留按键通讯作为代码 : `diff` 财务报告和审定财务报表 `apply` 其地块(地盘、外皮和电子邮件模板)和标记, `check` 皮肤相通,以物配主,并创造草本[文件/按钮.md](https://npmcn.com/package/%40casomoltd/tooling/docs/buttondown.md)(中文(简体) ) |
| `tally` | 保留 Tally 格式为代码 : `push` 一个表格,然后读回来, `diff` 它与活体形式相对应,并同步其样式表的标志物[文档/tally.md](https://npmcn.com/package/%40casomoltd/tooling/docs/tally.md)(中文(简体) ) |

## 安装

向公众公布npm登记。 把它加进消费者的 `devDependencies`数字 :

```
npm i -D @casomoltd/tooling
```

软件包是公开的,所以安装不需要符号或 `.npmrc`编辑 `files` 许可列表加 `verify-pack` 漏出门只保留已公布的表面到配置/CLI.

**安装此软件包从不安装浏览器 .** 这个 `screenshot` 宾需要一个 `build-report` 需求 `typst` CLI,但这里也没有申报——看 [外部先决条件](https://npmcn.com/package/%40casomoltd/tooling/#readme-external-prerequisites)。 。 。 .

## 外部先决条件

3个垃圾箱需要 npm 无法明智地交付的东西: `screenshot` 财务报告和审定财务报表 `render-figures` 需要通过 Playwright 建造铬 `build-report` 需求 `typst` CLI和IBM Plex字体. **无一被宣布为依赖者,而不是可选的同伴.** 每一个都懒散地装入其先决条件,在缺少安装指令时失败了,所以一个从未运行过这些垃圾桶的消费者不会带给他们任何东西.

这个规则,对于后来添加的任何东西:一个重量级的先决条件,只有一些消费者需要在这里被记录下来,从来没有宣布. 一个可选的对等者看起来是免费的,因为 npm 没有安装它, 但一旦有东西拉进来, 它就会解入消费者的锁文件, npm 之后不会给一个满意的可选对等者推出 `npm install`,没有打开 `npm install --package-lock-only`,没有打开 `npm uninstall`。因此,任何针对它的咨询都能够重置从未运行过垃圾桶, 并且清除它需要发布这个包而不是每个包的固定.

## 胡斯基钩

软件包提供共享的钩子命令,所以所有重置都执行相同的标准. 把他们绑起来 `.husky/`数字 :

**.husky/前承诺**

```
pre-commit
```

**.husky/承诺-msg**

```
commit-msg $1
```

**.husky/预推**

```
pre-push
```

每个回波定义自己的 `check` 脚本在 `package.json` - 钩子呼叫 `npm run check` 进行任何需要的复选(lint、打字、拼写等).

**说明:** 工具回放本身在其钩子(例如. `./bin/check-version.sh`因为它无法通过 `node_modules/.bin`。 。 。 .

### 工具链不是 npm 的回放

Python,Go或C++ repo仍然获得承诺规则. 它携带一个 **纯 npm 层** 用于宿主钩的

```json
{
  "name": "<repo>-hooks",
  "private": true,
  "description": "Dev-only npm layer: wires the shared commit-msg gate into this repo. Not the project toolchain.",
  "scripts": { "prepare": "husky" },
  "devDependencies": {
    "@casomoltd/tooling": "^<current>",
    "@commitlint/cli": "^20.0.0",
    "husky": "^9.1.7"
  }
}
```

加号 `commitlint.config.cjs` 重新出口规则 `.husky/commit-msg`。无 `version`,因为repo版本本身带有自己的工具.

**不要电线 `pre-commit` 或者说 `pre-push` 从此套件中取出 .** 两个都跑 `npm run check`,以及 `check-gates` 读取 `package.json` 并且需要8个命名为npm的脚本——一个非npm repo不能满足并且不应该伪造的门. 写一个 `.husky/pre-push` 将真正的工具链称为:

```sh
uv run ruff check && uv run ruff format --check && uv run pyright && uv run pytest
```

如果一个房子门不会在你的回购中运行, 窃听共享的或修复这个包, 永远不会有本地副本: [拨打一个缺失的门,永远不要重写](https://npmcn.com/package/%40casomoltd/tooling/docs/quality-gates.md#wire-a-missing-gate-never-rewrite-it)。 。 。 .

## 标记下/ 技能插图

`bin/skills-lint.config.mjs` 是一个股票注释配置( e)`remark-frontmatter` + 键 `remark-validate-links` + 键 `remark-lint-frontmatter-schema`验证克劳德代码技能/代理/文件树: `SKILL.md` 编号 : `agents/*.md` 拥有可解析的 YAML 前题 `name` + 键 `description`,每个相对链接和 `#anchor` 决定。 工具运行到 `npm run check` 作为 `lint:md`,在脚本名称的路径上 [`package.json`](https://npmcn.com/package/%40casomoltd/tooling/package.json) ——接取断裂后取出克洛德代号的装载器静静地吞下后留下的重名或手版.

将消费者Repo的文档(link/anchor完整性)装入自己的预承诺,安装语句工具链并指向已发运的配置:

```bash
npm i -D remark-cli remark-frontmatter remark-validate-links remark-lint-frontmatter-schema
```

```json
"lint:md": "remark --frail --quiet --no-stdout --rc-path node_modules/@casomoltd/tooling/bin/skills-lint.config.mjs docs"
```

附录 `&& npm run lint:md` 给您的 `check` 剧本. 配置解析您 repo 的插件 `node_modules` 和与其相对的图案;前题图案只匹配 `SKILL.md`编号 :`agents` 文件,所以对于普通文件,它起到链接/锁定检查的作用。 需要一个工具版本来运送配置.

## 截图工具

`screenshot` 是编码代理的可视反馈循环 : 克劳德抓住了它刚刚改变的一页,读取了PNG的回放并检查了自己的作品. 它需要一个Chrimium 构建, 此软件包不安装( 见 [外部先决条件](https://npmcn.com/package/%40casomoltd/tooling/#readme-external-prerequisites)。设置、旗帜、预设和输出位置位于 [`screenshot`](https://npmcn.com/package/%40casomoltd/tooling/skills/screenshot/SKILL.md) 技术.

## 设计规格

`spec-check` 读取一个 HTML 设计 spec 并报告其机械故障: 锚解决到无, 内容条目不同意其标题, 数字没有数字、 锚或标题, 数字比它所坐牌宽, 键入样式表生成一个的区号, 并标记文物主机拒绝.

`render-figures` 将 spec's mermaid 数字重写为静态 SVG,因此页面没有运行时间. 每个图都将其来源保存在上方的HTML注释中,运行会读取这些内容,使其被制成并冻结所计算的涂料。 它从工作目录解析 Playwright; set `RENDER_FIGURES_RESOLVE_FROM` 给一个从别的地方跑出来的项目.

## 客户报告(表格)

`report/` 用于客户端的 PDF 报告: a [泰普斯特语Name](https://typst.app/) 模板 (`casomo-template.typ`旁边有商标) `build-report` bin 将报表编译为 PDF . `report/example.typ` 是一个 lorem- ipsum 引用, 行使模板样式的每个特性。 报告如何导入模板,其中PDF登陆 [外部先决条件](https://npmcn.com/package/%40casomoltd/tooling/#readme-external-prerequisites) 它需要的是在 [`generate-report`](https://npmcn.com/package/%40casomoltd/tooling/skills/generate-report/SKILL.md) 技术.

## 质量门

钩子是大门,CI是后站。 每个钩子运行,为什么 `check` 拥有建筑,门 每回波 `check` 必须包含,并且规定一个失败的检查是固定的而不是被削弱的 [文件/质量门](https://npmcn.com/package/%40casomoltd/tooling/docs/quality-gates.md)。 。 。 .

## 使用量

**. prettierrc.js (英语)**

```js
module.exports = require('@casomoltd/tooling/prettier');
```

**{\\fn方正黑体简体\\fs18\\b1\\bord1\\shad1\\3ch2f2f2f}美国海军陆战队**

```cjs
module.exports = require('@casomoltd/tooling/commitlint');
```

**互联网档案馆的存檔,存档日期2013-12-02**

```js
import { createBaseConfig } from '@casomoltd/tooling/eslint';
```

ESLint配置使用了接收消费者已解决的进口的工厂功能来避免模块解析跨包边界的问题.

## 地方发展

更改工具需要推动 `main` 要发布(工作流程自动运行)。 重置时接取更改 `npm update @casomoltd/tooling`。 。 。 .

在本地编辑工具配置时使用快速迭代 `npm link` 以暂时链接您的本地退出 :

```bash
# in the consuming repo
npm link ../tooling
```

这将覆盖已公布的版本直至下一个版本 `npm install`,可以恢复注册版本.

## Claude 代码技能( 插件)

此 repo 是 Claude 代码插件 (`.claude-plugin/`运输 **通用公共工程标准** 我们的工作 跨越三个毒剂表面 - **技能**, (中文(简体) ), **钩子**,以及 **代理人**企业特有的人生活在私人结构中,而不是在这里.

该工具服务于三个消费者: **克劳德** (编辑工作流程)-这些插件表面; **CI + gi** (自发) • npm `bin` 剧本. CLI不是为人工人类使用而设计的.

**作者标准 :** 创建或编辑以下技能/代理 [`docs/skill-agent-schema.md`](https://npmcn.com/package/%40casomoltd/tooling/docs/skill-agent-schema.md) 接口方案(三个简介——程序技能——代理人——标准/rubric——加上前题决定表),使这些单位的结构不相重叠.

| 技能 | 说明 |
| --- | --- |
| [`/casomoltd:commit`](https://npmcn.com/package/%40casomoltd/tooling/skills/commit/SKILL.md) | 运行检查并做出干净的承诺( 不碰, 不推) |
| [`/casomoltd:release-version`](https://npmcn.com/package/%40casomoltd/tooling/skills/release-version/SKILL.md) | Bump – 推 → CI 发布/部署(发布尾) |
| [`/casomoltd:design-pass`](https://npmcn.com/package/%40casomoltd/tooling/skills/design-pass/SKILL.md) | 地图 – 审查 – 重构一个包 |
| [`/casomoltd:draft-design-spec`](https://npmcn.com/package/%40casomoltd/tooling/skills/draft-design-spec/SKILL.md) | 在写入代码前作者可复核的 HTML 设计 spec |
| [`/casomoltd:screenshot`](https://npmcn.com/package/%40casomoltd/tooling/skills/screenshot/SKILL.md) | 抓取并分析 Dev 服务器页面 |
| [`/casomoltd:generate-report`](https://npmcn.com/package/%40casomoltd/tooling/skills/generate-report/SKILL.md) | 脚手架和编译 Typst 客户端报告,验证 PDF |
| [`/casomoltd:session-todo`](https://npmcn.com/package/%40casomoltd/tooling/skills/session-todo/SKILL.md) | 撰写并工作会话移交列表 |
| [`casomoltd:typescript`](https://npmcn.com/package/%40casomoltd/tooling/skills/typescript/SKILL.md) | TypeScript 数据建模和类型设计( rubric) |
| [`casomoltd:python-style`](https://npmcn.com/package/%40casomoltd/tooling/skills/python-style/SKILL.md) | Python 代码生成样式规则( rubric) |
| [`casomoltd:docs-style`](https://npmcn.com/package/%40casomoltd/tooling/skills/docs-style/SKILL.md) | 技术和参考文件公约(要点) |
| [`/casomoltd:frontend-design`](https://npmcn.com/package/%40casomoltd/tooling/skills/frontend-design/SKILL.md) | 有区别的,生产级前端UI (rubric) |
| [`/casomoltd:page-design`](https://npmcn.com/package/%40casomoltd/tooling/skills/page-design/SKILL.md) | 信任内容页面结构( rubric) |

启用插件, 将此重播作为市场并安装:

```bash
/plugin marketplace add casomoltd/tooling
/plugin install casomoltd@casomo-tooling
```

技能然后加载命名空间为 `/casomoltd:<name>`。 。 。 .

### 钩子

该插件还传送通用 **使用钩子** (单位:千美元)`hooks/`) 警卫命令/壳意向无线或承诺钩可见: `git push`硬块的破坏力, `npm version major`,全局安装,并编辑会削弱TypeScript严格性. (他们刻意不重复 承诺/slint 已经执行的) `hooks/README.md`. ) (中文(简体) ). 警卫是咨询——他们要求你确认当他们不能读到一个电话的输入时,从不硬挡自己的故障. 他们要求 **节点 22.18 24** (它们作为类型脚本运行) `.mts` 通过本地类型抽取——无建构步骤).

见 [`hooks/README.md`](https://npmcn.com/package/%40casomoltd/tooling/hooks/README.md) 用于完整规则集、文件映射、钩子关系 `settings.json` 权限和技能 `allowed-tools`,以及 TypeScript / sparksed-types 设计原理.

### 探员

指定代理人( N)`agents/`),每个只读它检查和预先装入它所应用的房屋标准。 每个文件的前题和 _范围_ 说它做什么,没有覆盖.

| 探员 | 审查或地图 |
| --- | --- |
| [`casomoltd:code-review`](https://npmcn.com/package/%40casomoltd/tooling/agents/code-review.md) | 根据房屋设计标准修改了代码 |
| [`casomoltd:design-xray`](https://npmcn.com/package/%40casomoltd/tooling/agents/design-xray.md) | 软件包的结构:映射、权重、重构目标 |
| [`casomoltd:docs-xray`](https://npmcn.com/package/%40casomoltd/tooling/agents/docs-xray.md) | 文件目录:地图、参考图表、一致性 |
| [`casomoltd:doc-review`](https://npmcn.com/package/%40casomoltd/tooling/agents/doc-review.md) | 一个寄存器的形状 |
| [`casomoltd:skill-review`](https://npmcn.com/package/%40casomoltd/tooling/agents/skill-review.md) | 技能和代理简介 |
| [`casomoltd:spec-review`](https://npmcn.com/package/%40casomoltd/tooling/agents/spec-review.md) | HTML 设计外观相对于其作者标题 |

`design-xray` 财务报告和审定财务报表 `docs-xray` 他们的报应,将永存于世 [一个坚持提交报告的特工](https://npmcn.com/package/%40casomoltd/tooling/docs/skill-agent-schema.md#an-agent-that-persists-a-report)。 。 。 .

## 软件包分发

`@casomoltd/tooling`,与产品库(`@casomoltd/paye-calc`, (中文(简体) ), `@casomoltd/nhs-pay`),通过OIDC信任的出版方式向公众公布npm注册——安装无认证或 `.npmrc`。 版本标签推 (`npm version patch` → `git push --follow-tags`) 触发器 `publish.yml`该工作流程包含 **无 npm 针**:它建立在节点24上,其捆绑的npm 11.x已经是我们希望的范围——在或高于 `npm >= 11.5.1` 值得信赖的出版需求, 以及 npm 12 的短片, 默认时仍然拒绝非注册获取( npm 12) `EALLOWREMOTE`),因此不能重生一个解析中转远程柏油球的锁文件. 在移动到 npm 12 之前重新测试取取块 .

## 常见问题

### @casomoltd/tooling 是什么？

卡索莫共享的dev配置:ESLint,Prettier,contlint,knip & jscpd预设,dev CLIs\(git hooks,可读性,截图,设计规格\),并导入了构建时间数据和帮助站点\(Buttondown引擎,共享组织\)

### 如何安装 @casomoltd/tooling？

在项目目录运行 npm install @casomoltd/tooling，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：knip（\>=5）、jscpd（\>=4）、eslint（\>=9\.24）、typescript（\>=5）、@commitlint/cli（\>=20）、eslint-config-next（\>=16）、eslint-plugin-sonarjs（\>=3）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。它还提供命令行工具 tally、pre-push、buttondown、check-tags、commit-msg、pre-commit、screenshot、spec-check、check-gates、check-hooks、readability、build-report，可以用 npx tally 直接运行。

### @casomoltd/tooling 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @casomoltd/tooling 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @casomoltd/tooling 可以商用吗？

@casomoltd/tooling 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @casomoltd/tooling 的下载量有多少？

根据 npm 官方下载统计，@casomoltd/tooling 在 2026/10/09 – 2026/11/07 这 30 天内被下载 3,916 次，日均约 131 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @casomoltd/tooling 还在维护吗？

最新版本 0\.49\.1 发布于 2026/11/07（1 天前）；至今共发布 65 个版本，其中过去 12 个月发布了 65 个；首次发布于 2026/07/10。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

