Expert guidance for projen-managed projects with task execution, configuration synthesis, and development workflows
Expert guidance for working with projen-managed projects, including task execution, configuration management, and development workflows.
This skill provides comprehensive instructions for developing in projen-managed projects. Projen is a project configuration management tool that synthesizes project files from a single source of truth.
**Always use projen for running tasks** instead of npm, yarn, or other package managers directly:
```bash
node ./projen.js <task-name>
node ./projen.js # Synthesize project configuration
node ./projen.js build # Build project (compile + test)
node ./projen.js test # Run tests only
node ./projen.js compile # Compile source code only
```
**Check available tasks** by inspecting `.projen/tasks.json` for all available tasks, descriptions, and steps.
**NEVER manually edit generated files.** Files marked with comments like "~~ Generated by projen. To modify..." are auto-generated and will be overwritten.
**Always modify configuration in `.projenrc`** files (`.projenrc.ts`, `.projenrc.py`, or `.projenrc.json`) instead:
1. Edit the `.projenrc` configuration file
2. Run `node ./projen.js` to regenerate project files
3. Review the synthesized changes
4. Commit both `.projenrc` and generated files
**Check `.projenrc` first** before suggesting changes to `package.json`, `tsconfig.json`, or other configuration files.
**Add dependencies through projen configuration**, not by editing `package.json` directly.
Example in `.projenrc.ts`:
```typescript
project.addDeps('lodash'); // Runtime dependency
project.addDevDeps('jest'); // Dev dependency
project.addPeerDeps('react'); // Peer dependency
```
1. Make changes to `.projenrc` configuration file
2. Run `node ./projen.js` to synthesize and update generated files
3. Review the changes in generated files
4. Commit both `.projenrc` and the generated files together
A task is **not complete** until:
Always run `node ./projen.js build` after modifying source or test files to ensure changes compile and pass all tests.
When contributing to the projen repository:
**Avoid full builds** - They take a long time. Run individual tasks directly instead.
**Run specific tests** for faster iteration:
```bash
node ./projen.js test test/path-to-test.test.ts
```
**Always run the linter** before committing:
```bash
node ./projen.js eslint
```
Use the linter frequently to ensure code is formatted correctly and follows best practices.
Leave a review
No reviews yet. Be the first to review this skill!
# Download SKILL.md from killerskills.ai/api/skills/projen-project-management-d1chqv/raw