npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@edgeone/framework-detect

v0.2.0

Published

A framework detection library for web projects

Downloads

3,504

Readme

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