원클릭으로
create-package
Creating a new package in the monorepo
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Creating a new package in the monorepo
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Coding patterns and conventions (package design, types, DI, docs)
Running CI locally with Dagger
Debugging (source maps, cache, test failures)
DevContainer runtimes, CLI tools, and version parity with Dagger
Installing a package dependency
Linting and formatting (ESLint, Biome, auto-fix)
| name | create-package |
| description | Creating a new package in the monorepo |
Reference: https://nx.dev/concepts/more-concepts/applications-and-libraries
This workspace uses manual package creation (no Nx generators are configured for new packages). Use an existing package as a template.
Pick an existing package at a similar level of complexity:
# Simple library → tools/enum-to-array or tools/parse-cwd
# Library with DI → tools/haywire
# App → apps/barrelify
Required files (copy and adapt from template):
| File | Purpose |
|---|---|
package.json | Name, version, dependencies. Must have "type": "module". New packages should start at 0.0.1 version |
tsconfig.json | Extends root tsconfig. Dependencies will be synced automatically. Body should be {"extends": "./path/to/tsconfig.build.json", "compilerOptions": { "outDir": "dist", "rootDir": "src", "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo" } } |
project.json | Declares non-default targets. Most targets come from nx.json defaults. Many tasks are synced via lifecycle and the rest are opted into based on demands. See the nx-tasks-reference skill for more info about which tasks to opt into. |
eslint.config.js | By default just export the result from configGenerator from @leyman/eslint-config combined with package.json. Can be extended if package has specific requirements. |
Run pnpm i then nx run-many -t build and nx run @leyman/main:lifecycle
This will generate pnpm-dedicated-lockfile, and generally make
sure all the config files (e.g. tsconfig.json) are properly synced.