PSX:项目结构检查器

发布: (2025年12月20日 GMT+8 15:50)
6 分钟阅读
原文: Dev.to

Source: Dev.to

Why PSX?

  • 厌倦了在新项目的第一小时里创建文件夹、配置文件和样板代码吗?
  • 克隆一个仓库后发现一半的必需文件缺失?
  • 为每个项目重复相同的复制‑粘贴步骤(README、.gitignore、CI 模板等)?

PSX 自动化完成所有这些工作。

PSX 检查内容

类别项目
必需文件README.md, LICENSE, .gitignore, CHANGELOG.md
文件夹结构src/, tests/, docs/, cmd/, internal/, pkg/(取决于项目类型)
文档CONTRIBUTING.md, SECURITY.md, API 文档, ADRs
CI / DevOps 基础Docker 文件, docker‑compose.yml, 最小化 CI/工作流模板
质量工具.editorconfig, Go linter 集成等

最棒的部分是? PSX 不仅仅报告问题——它还能 修复它们

快速安装

Linux / macOS

curl -sSL https://raw.githubusercontent.com/m-mdy-m/psx/main/scripts/install.sh | bash

Windows (PowerShell)

irm https://raw.githubusercontent.com/m-mdy-m/psx/main/scripts/install.ps1 | iex

完整的分步指南: docs/INSTALLATION.md
二进制文件: 请参阅 GitHub 上的 Releases 页面。

支持的项目类型

PSX 目前专注于 GoNode.js 项目。
您必须通过在仓库根目录添加一个小的配置文件来告诉 PSX 您正在使用的项目类型:

# psx.yml
project:
  type: "go"      # or "nodejs"

如果缺少 project.type,PSX 将提示您创建它。

基本用法

# 移动到你的项目目录
cd my-project

# 验证布局
psx check

示例输出

Detected: go  (based on project.type in psx.yml)

ERRORS (2)
✗ README_REQUIRED
    README.md file not found in project root

✗ LICENSE_REQUIRED
    No LICENSE file found

Summary: 2 errors, 0 warnings
Status: FAILED ✗

修复问题

# 交互模式(在创建每个文件前询问)
psx fix

# 非交互模式 – 自动创建所有文件
psx fix --all

配置详情

Basic psx.yml

version: 1

project:
  type: "nodejs"

rules:
  readme: error      # Must have
  license: warning   # Should have
  changelog: info    # Nice to have

ignore:
  - node_modules/
  - dist/
  • rules – 为每个检查设置严重程度(errorwarninginfo)。
  • ignore – PSX 应该跳过的路径。

Custom Files & Folders

custom:
  files:
    - path: ".env.example"
      content: |
        NODE_ENV=development
        PORT=3000

  folders:
    - path: "src/api"
      structure:
        controllers: {}
        middlewares: {}
        routes: {}

查看 examples/psx.examples.yml 以获取更高级的配置。

模板与资源

PSX 附带语言特定的模板:

  • README 骨架
  • 多种 LICENSE 类型
  • .gitignore 代码片段
  • Dockerfile 与 docker‑compose.yml
  • ADR / 文档模板

所有模板都位于嵌入的 resources 目录中,可通过您自己的配置进行覆盖或扩展。

CI 集成

PSX 可以输出机器友好的 JSON,完美用于流水线:

- name: Validate Structure
  run: |
    psx check --output json

在 CI 中使用 --fail-on warning(或 error)来强制执行更严格的规则。

内部(供开发者使用)

组件位置目的
配置加载器internal/config/读取并验证 psx.yml
规则引擎internal/rules/并行执行检查
资源internal/resources/保存所有嵌入的模板
修复器internal/rules/fixer.go创建缺失的文件/文件夹
报告器internal/reporter/格式化输出(表格或 JSON)

代码库最近为简化进行了重构:统一的检查/修复流程、更清晰的资源分离,以及最小化的命令入口(checkfix)。在 internal/ 中浏览其余内部实现。

范围与限制

  • 显式项目类型 – PSX 从不猜测;你需要设置 project.type
  • 专注模板 – 仅提供最小、可维护的 CI/质量文件。复杂的流水线应单独管理。
  • 没有插件系统 或多项目扫描(可能以后会添加)。

贡献

PSX 是开源的(MIT 许可证)。

  • Bugs(错误): 提交 issue。
  • Feature requests(功能请求): 发起讨论。
  • Ideas & improvements(想法与改进): 欢迎提交 pull request。

扩展 PSX

  1. rules.yml 中或直接在 internal/rules 中添加新规则。
  2. 将额外的模板放入 internal/resources
  3. 重新构建二进制文件。

许可证

MIT © 2025 — m‑mdy‑m(PSX 作者)

使用 Go 1.25 构建 — 单个静态二进制文件,无运行时依赖,随处可用。

一个原则

不要让我去思考枯燥的事情。

当我开始一个项目时,我想写代码,而不是花 30 分钟设置文件夹和配置文件。
当我克隆一个仓库时,我想知道它有合适的结构,而无需手动检查。

PSX 处理枯燥的部分,让你专注于有趣的部分。

安装

curl -sSL https://raw.githubusercontent.com/m-mdy-m/psx/main/scripts/install.sh | bash

检查项目

cd your-project
# 确保 psx.yml 包含 `project.type: "go"` 或 `"nodejs"`
psx check

修复问题

psx fix

定制

echo "version: 1" > psx.yml
# Add your rules...

您的想法

我很想听听您的意见:

  • PSX 以聚焦、类型优先的设计,是否让项目设置对您更可预测、更有用?
  • 您更倾向于更广泛的语言支持、插件系统,还是更丰富的 CI 模板?

在 GitHub 上发起讨论,或将建议和安全报告发送至 bitsgenix@gmail.com

让我们一起构建真正能节省时间的东西!

Back to Blog

相关文章

阅读更多 »

项目结构检查器

它的作用是 PSX 自动检测项目类型(Node、Go 等),并运行一套规则以确保仓库拥有必要的文件。如果缺少某些文件……