@edgeone/framework-detect

A framework detection library for web projects
169,969
Install
npm install @edgeone/framework-detect
Latest Version:0.2.0
License:ISC
Last Updated:Dec 29, 2025
Links: npm
Maintainer: xiaban

framework-detect

一个用于检测 Web 项目框架的 TypeScript 库,支持本地检测和远程仓库检测。

安装

tnpm install @tencent/framework-detect

使用方法

本地检测

import { describeFramework } from '@tencent/framework-detect';

// 检测项目框架
const frameworkInfo = await describeFramework('./my-project');
console.log(frameworkInfo);

远程仓库检测

支持 GitHub、Gitee、GitLab、Bitbucket 四大平台的远程仓库检测。

GitHub
import { describeFrameworkRemote } from '@tencent/framework-detect';

// 公开仓库(无认证,有速率限制)
const result = await describeFrameworkRemote({
  Provider: "Github",
  Namespace: "vercel",
  RepoName: "next.js",
  RootDir: "examples/blog",
});

// 私有仓库(需要 Token)
const result = await describeFrameworkRemote({
  Provider: "Github",
  Namespace: "your-org",
  RepoName: "your-repo",
}, {
  Token: "ghp_xxxxx", // GitHub Personal Access Token
});
Gitee
const result = await describeFrameworkRemote({
  Provider: "Gitee",
  Namespace: "oschina",
  RepoName: "gitee",
}, {
  Token: "your_gitee_token",
});
GitLab
// 支持 gitlab.com 和自建实例
const result = await describeFrameworkRemote({
  Provider: "Gitlab",
  Namespace: "gitlab-org",
  RepoName: "gitlab",
  Branch: "master",
}, {
  Token: "glpat-xxxxx",
  BaseUrl: "https://gitlab.com", // 自建实例请修改此 URL
});
Bitbucket
// Bitbucket Cloud
const result = await describeFrameworkRemote({
  Provider: "Bitbucket",
  Namespace: "atlassian",
  RepoName: "stash-example-plugin",
  Branch: "master",
}, {
  Token: "your_app_password", // App Password 或 OAuth Token
});

// Bitbucket Data Center(自建)
const result = await describeFrameworkRemote({
  Provider: "Bitbucket",
  Namespace: "PROJECT_KEY",
  RepoName: "repo-slug",
}, {
  Token: "your_personal_access_token",
  BaseUrl: "https://bitbucket.example.com",
});

详细的 Bitbucket 集成指南请查看 BITBUCKET_GUIDE.md

API

describeFramework(projectRoot: string): Promise<FrameworkInfo>

检测指定目录中的 Web 项目框架。

参数:

  • projectRoot (string): 项目根目录路径

返回值:

  • Promise<FrameworkInfo>: 框架信息对象

describeFrameworkRemote(body: GitProviderBody, auth?: any): Promise<FrameworkInfo>

检测远程 Git 仓库中的 Web 项目框架。

参数:

  • body (GitProviderBody): 仓库信息
    • Provider: "Github" | "Gitee" | "Gitlab" | "Bitbucket"
    • Namespace: 用户名/组织名/Workspace ID/Project Key
    • RepoName: 仓库名称
    • RootDir?: 根目录(可选)
    • Branch?: 分支名(可选)
  • auth? (any): 认证信息(可选)
    • GitHub: { Token: "ghp_xxxxx" } 或 Octokit 实例
    • Gitee: { Token: "your_token" }
    • GitLab: { Token: "glpat-xxxxx", BaseUrl?: "https://gitlab.com" }
    • Bitbucket: { Token: "your_token", BaseUrl?: "https://api.bitbucket.org" }

返回值:

  • Promise<FrameworkInfo>: 框架信息对象

返回对象结构:

interface FrameworkInfo {
  Framework: string;    // 框架名称
  BuildCmd: string;     // 构建命令
  InstallCmd: string;   // 安装命令
  OutputDir: string;    // 输出目录
  IconPath?: string;    // 图标路径(可选)
}

支持的框架

  • Next.js
  • Gatsby
  • Remix
  • React Router
  • Astro
  • Hexo
  • Eleventy
  • Docusaurus
  • Solid
  • Vue
  • Angular
  • Svelte
  • React
  • Nuxt
  • Qwik
  • Hono
  • Vite

支持的 Git 平台

平台 公开仓库 私有仓库 自建实例 认证方式
GitHub ✅ ✅ ✅ Personal Access Token
Gitee ✅ ✅ ❌ Personal Access Token
GitLab ✅ ✅ ✅ Personal Access Token
Bitbucket ✅ ✅ ✅ OAuth 2.0 / App Password / PAT

开发

# 安装依赖
npm install

# 构建
npm run build

# 运行测试
npm run test

# 测试远程检测
bun testRemote.ts

Related Packages

ziko-wrapper

integrate zikojs elements within other ui framework like vue react solidjs svelt...

5,604 49
@passlock/browser

Flexible passkey authentication for Astro, SvelteKit, NextJS and other framework...

5,281 192
create-precast-app

CLI tool to scaffold modern web applications with your chosen stack

2,096 2
taggedjs

tagged template reactive html

22,397
zipaper

一个简单易用的小巧前端框架

3,787 6

Version History

Version Released License
0.2.0 ISC
0.1.0 ISC
0.0.2 ISC
0.0.1 ISC