Getting Started
Get started with FoundryKit CLI for project setup and management
Getting Started
Learn how to install and use the FoundryKit CLI to create and manage your projects efficiently.
Installation
Global Installation
Install the FoundryKit CLI globally to access it from anywhere on your system.
npm install -g @foundrykit/cli
Verify Installation
Check that the CLI is properly installed and accessible.
foundrykit --version
You should see output similar to:
@foundrykit/cli v1.0.0
Prerequisites
Before using the FoundryKit CLI, ensure you have the following installed:
- Node.js (v18 or higher)
- npm (v8 or higher) or yarn (v1.22 or higher)
- Git (for version control)
Check Your Environment
# Check Node.js version
node --version
# Check npm version
npm --version
# Check Git version
git --version
Quick Start
Create a New Project
Create a new FoundryKit project with a single command.
foundrykit create my-project
This will:
- Create a new directory with your project name
- Set up the basic project structure
- Install all necessary dependencies
- Initialize Git repository
- Create initial configuration files
Interactive Setup
For more control over your project setup, use the interactive mode.
foundrykit create my-project --interactive
This will prompt you for:
- Project name and description
- Package manager preference (npm, yarn, pnpm)
- TypeScript configuration
- Testing framework preference
- Additional features to include
Project Structure
When you create a new project, the CLI generates the following structure:
Basic Commands
Project Management
# Create a new project
foundrykit create <project-name>
# Initialize FoundryKit in existing project
foundrykit init
# Add a new component
foundrykit add component <component-name>
# Add a new page
foundrykit add page <page-name>
# Generate component documentation
foundrykit docs generate
Development Commands
# Start development server
foundrykit dev
# Build for production
foundrykit build
# Preview production build
foundrykit preview
# Run tests
foundrykit test
# Run linting
foundrykit lint
Configuration Commands
# Update FoundryKit configuration
foundrykit config update
# Show current configuration
foundrykit config show
# Reset configuration to defaults
foundrykit config reset
Configuration
FoundryKit Config File
The CLI creates a foundrykit.config.js
file in your project root.
module.exports = {
// Project configuration
project: {
name: 'my-project',
version: '1.0.0',
description: 'A FoundryKit project'
},
// Build configuration
build: {
outDir: 'dist',
assetsDir: 'assets',
sourcemap: true
},
// Development configuration
dev: {
port: 3000,
host: 'localhost',
open: true
},
// Component configuration
components: {
directory: 'components',
prefix: '',
style: 'css'
}
}
Environment Variables
Create a .env
file for environment-specific configuration.
# .env
FOUNDRYKIT_API_KEY=your_api_key_here
FOUNDRYKIT_ENVIRONMENT=development
FOUNDRYKIT_DEBUG=true
Package Manager Integration
npm
# Install dependencies
npm install
# Run scripts
npm run dev
npm run build
npm run test
yarn
# Install dependencies
yarn install
# Run scripts
yarn dev
yarn build
yarn test
pnpm
# Install dependencies
pnpm install
# Run scripts
pnpm dev
pnpm build
pnpm test
TypeScript Support
The CLI automatically configures TypeScript for your project.
TypeScript Configuration
{
"compilerOptions": {
"target": "ES2020",
"lib": ["ES2020", "DOM", "DOM.Iterable"],
"module": "ESNext",
"skipLibCheck": true,
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "react-jsx",
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true
},
"include": ["src"],
"references": [{ "path": "./tsconfig.node.json" }]
}
Type Definitions
The CLI includes TypeScript definitions for all FoundryKit packages.
// Auto-generated types
import type { ButtonProps } from '@foundrykit/components'
import type { useLocalStorage } from '@foundrykit/hooks'
Testing Setup
Jest Configuration
The CLI sets up Jest for testing with React Testing Library.
// jest.config.js
module.exports = {
testEnvironment: 'jsdom',
setupFilesAfterEnv: ['<rootDir>/src/setupTests.ts'],
moduleNameMapping: {
'^@/(.*)$': '<rootDir>/src/$1'
},
collectCoverageFrom: [
'src/**/*.{js,jsx,ts,tsx}',
'!src/**/*.d.ts'
]
}
Example Test
// src/components/Button.test.tsx
import { render, screen } from '@testing-library/react'
import { Button } from './Button'
describe('Button', () => {
it('renders correctly', () => {
render(<Button>Click me</Button>)
expect(screen.getByRole('button')).toBeInTheDocument()
})
})
Linting and Formatting
ESLint Configuration
The CLI configures ESLint with React and TypeScript rules.
// .eslintrc.js
module.exports = {
extends: [
'eslint:recommended',
'@typescript-eslint/recommended',
'plugin:react/recommended',
'plugin:react-hooks/recommended'
],
parser: '@typescript-eslint/parser',
plugins: ['@typescript-eslint', 'react'],
rules: {
'react/react-in-jsx-scope': 'off'
}
}
Prettier Configuration
{
"semi": false,
"singleQuote": true,
"tabWidth": 2,
"trailingComma": "es5"
}
Git Integration
Initial Setup
The CLI automatically initializes a Git repository and creates a .gitignore
file.
# .gitignore
node_modules/
dist/
.env.local
.env.development.local
.env.test.local
.env.production.local
*.log
Commit Hooks
The CLI can set up pre-commit hooks for code quality.
# Install husky for git hooks
foundrykit setup hooks
Troubleshooting
Common Issues
CLI not found
# Reinstall globally
npm uninstall -g @foundrykit/cli
npm install -g @foundrykit/cli
Permission errors
# On macOS/Linux, use sudo
sudo npm install -g @foundrykit/cli
Node version issues
# Check Node version
node --version
# Use nvm to switch versions
nvm use 18
Getting Help
# Show help
foundrykit --help
# Show command-specific help
foundrykit create --help
# Check CLI version
foundrykit --version
Next Steps
- Learn about command reference for detailed usage
- Explore configuration options for customization
- Check out advanced usage for complex workflows
- Review best practices for optimal CLI usage