# Syncing Tsconfig Paths

> Synchronizes tsconfig.json paths from package.json imports field. Ensures TypeScript resolves subpath imports (#imports) correctly during development.

- Skill: `majiayu000/syncing-tsconfig-paths` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add majiayu000/syncing-tsconfig-paths`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/syncing-tsconfig-paths/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/syncing-tsconfig-paths

---


# Syncing TSConfig Paths

Keep tsconfig paths in sync with package.json subpath imports.

## Steps

### Syncing

```bash
pnpm exec tsx .claude/skills/syncing-tsconfig-paths/scripts/sync-tsconfig-paths.ts
```

### Auditing

Run with `--check` flag to verify without modifying:
```bash
pnpm exec tsx .claude/skills/syncing-tsconfig-paths/scripts/sync-tsconfig-paths.ts --check
```

## Reference

The script transforms package.json imports to tsconfig paths:

```json
// package.json
{
  "imports": {
    "#pkg": "./build/_.js",
    "#foo": "./build/foo.js"
  }
}
```

Becomes:

```json
// tsconfig.json
{
  "compilerOptions": {
    "paths": {
      "#pkg": ["./src/_.ts"],
      "#foo": ["./src/foo.ts"]
    }
  }
}
```

Key transformation: `./build/` → `./src/` (extension stays `.js` - TypeScript with nodenext resolves to `.ts`)

## Notes

- Run after modifying any package's `imports` field
- Conditional imports (objects with browser/default) are skipped with a warning
- This enables TypeScript to resolve `#` imports during development before build

