A command-line tool for quickly initializing frontend project standardization configurations
FSL Standard CLI is a standardization configuration tool designed specifically for frontend projects, helping you quickly establish best practice configurations for your projects.
- 🔧 Basic Configuration: EditorConfig, npmrc, TypeScript, VS Code, Gitignore, PostCSS
- ✅ Quality Assurance: Biome, Pre-commit hooks, Commitlint, Browserslist
- 📚 Advanced Features: JSDoc documentation generation, Changelog automation
- 🤖 Interactive Configuration: Select required configuration items through checkboxes
- 📦 Out-of-the-box: Pre-configured best practices, no tedious setup required
# Global installation
npm install -g fsl-std-cli
# Or using pnpm
pnpm add -g fsl-std-cli
# Or using yarn
yarn global add fsl-std-cliRun in your project root directory:
fstd initThen select the project settings you need according to the prompts:
? Project settings: (Press <space> to select, <a> to toggle all, <i> to invert selection)
❯◉ setEditorconfig
◉ setNpmrc
◉ setTypeScript
◉ setVSCode
◉ setGitignore
◉ setBiome
◉ setPrecommit
◉ setCommitlint
◉ setBrowserslistrc
◉ setJSDoc
◉ setChangelog
| Configuration | Description | Generated Files |
|---|---|---|
| EditorConfig | Unified editor configuration | .editorconfig |
| Npmrc | npm configuration optimization | .npmrc |
| TypeScript | TypeScript basic configuration | tsconfig.json |
| VS Code | VS Code workspace configuration | .vscode/settings.json, .vscode/extensions.json |
| Gitignore | Git ignore file configuration | .gitignore |
| Configuration | Description | Related Dependencies |
|---|---|---|
| Biome | Biome | biome.json |
| Pre-commit | Git pre-commit hooks | husky, lint-staged |
| Commitlint | Commit message specification checking | @commitlint/cli |
| Browserslist | Browser compatibility configuration | .browserslistrc |
| Configuration | Description | Features |
|---|---|---|
| JSDoc | API documentation generation | Automatic project documentation |
| Changelog | Changelog automation | Based on Conventional Commits |
# Clone the project
git clone https://github.com/your-username/fsl-std-cli.git
cd fsl-std-cli
# Install dependencies
pnpm install
# Build the project
pnpm build
# Local link
pnpm link --global
# Development mode (real-time compilation)
pnpm dev:watchfsl-std-cli/
├── bin/ # CLI entry files
│ ├── entry.ts # Main entry point
│ ├── fstd.ts # CLI core logic
│ └── fstd.init.ts # Initialization command
├── packages/
│ ├── script/ # Configuration method implementations
│ │ ├── config-methods/ # Various configuration methods
│ │ └── utils/ # Utility functions
│ └── template/ # Configuration file templates
│ └── config-files/ # Preset configuration files
├── package.json # Main package configuration
└── pnpm-workspace.yaml # Monorepo configuration
# Build the project
pnpm build
# Development mode
pnpm dev
# Commit code (using Conventional Commits)
pnpm commit
# Generate documentation
pnpm generate-docs
# Generate changelog
pnpm versionIssues and Pull Requests are welcome!
- Fork this project
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
ISC © Chase Chen
Thanks to all open source projects and communities that contribute to frontend engineering standardization.