@baybreezy/file-extension-icon

中文文档
0.0.5发布于 2026/05/04MITTypeScriptESM + CJS零依赖近 30 天下载 1867

用于文件夹和文件扩展名的现代轻量级软件包

中文使用文档
文档目录23 节
  1. * 特性
  2. * 安装
  3. 使用量
  4. 基本用途
  5. 框架实例
  6. 高级使用
  7. API 参考
  8. 材料图标
  9. VSCode 图标
  10. 工具函数
  11. QQ CLI 工具
  12. CLI 特性
  13. QQ 套装大小
  14. 优化提示
  15. 发展
  16. 测试
  17. 捐款
  18. 许可证
  19. 功劳和承认
  20. 原始软件包
  21. 图标来源
  22. 灵感
  23. 链接

@baybreezy/ file-extension-icon (英语)

Demo Cover Image

现代、 文件及文件夹扩展名的首个软件包

完整重写 file-extension-icon-js 采用现代的TypeScript,无害环境管理第一方法,以及UnJS生态系统,以获得最佳的性能和开发者经验.

npm version npm bundle size License: MIT

* 特性

  • 🎨 两个图标主题: 材料图标 主题和 VSCode 图标
  • 🔷 类型脚本: 具有综合类型定义的完整类型安全
  • 📦 零依赖关系: 无运行时间依赖性
  • 🌳 树能震动: 只捆绑您使用的
  • 🔄 双格式无害环境管理和共同JS支助
  • 🚀 现代建筑: 为优化输出而用倒建来构建
  • ✅ 测试良好: 全面试验覆盖率
  • 📝 有记录: 完整的联合来文文件评论和实例
  • 🖥️ 包括国别学习: 用于浏览和导出图标的交互式终端工具

* 安装

# @antfu/ni
npx ni @baybreezy/file-extension-icon

使用量

基本用途

import {
  getMaterialFileIcon,
  getMaterialFolderIcon,
  getVSIFileIcon,
  getVSIFolderIcon,
} from "@baybreezy/file-extension-icon";

// Get Material Design file icon
const jsIcon = getMaterialFileIcon("index.js");
// Returns: "data:image/svg+xml;base64,..."

// Get Material Design folder icon (closed)
const folderIcon = getMaterialFolderIcon("components");

// Get Material Design folder icon (open)
const openFolderIcon = getMaterialFolderIcon("components", true);

// Get VSCode file icon
const tsIcon = getVSIFileIcon("app.ts");

// Get VSCode folder icon
const vsiFolderIcon = getVSIFolderIcon("src", true);

框架实例

反应 / Vue / Svelte

import { getMaterialFileIcon } from "@baybreezy/file-extension-icon";

function FileIcon({ fileName }: { fileName: string }) {
  const icon = getMaterialFileIcon(fileName);

  return <img src={icon} alt={fileName} width={24} height={24} />;
}

HTML 语言

<script type="module">
  import { getMaterialFileIcon } from "@baybreezy/file-extension-icon";

  const icon = getMaterialFileIcon("index.html");
  document.getElementById("icon").src = icon;
</script>

<img id="icon" alt="html" width="24" height="24" />

高级使用

import {
  convertToBase64,
  createDataUri,
  findIconInCollection,
  getIconFromMap,
  getMaterialFileIcon,
} from "@baybreezy/file-extension-icon";

// The package intelligently matches file names
getMaterialFileIcon("app.component.ts"); // Matches Angular component
getMaterialFileIcon("test.spec.ts"); // Matches test file
getMaterialFileIcon("package.json"); // Matches package.json
getMaterialFileIcon("Dockerfile"); // Matches Docker

// Works with any file extension
getMaterialFileIcon("script.py");
getMaterialFileIcon("style.scss");
getMaterialFileIcon("README.md");

API 参考

材料图标

getMaterialFileIcon(fileName: string): string

使用材料图标主题返回给定文件名的已编码的 SVG 基础数据 URI .

参数:

  • fileName (字符串):有或无路径的文件名(例如, "index.js", (中文(简体) ), "src/app.ts"(中文(简体) )

回返情况: Base64 编码数据 URI 字符串

示例

const icon = getMaterialFileIcon("index.js");
// => "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0..."

getMaterialFolderIcon(folderName: string, open?: boolean): string

使用“材料图标”主题返回给定文件夹名称的基数64编码的 SVG 数据 URI .

参数:

  • folderName (字符串):文件夹名称
  • open (布尔,可选): 是否返回打开的文件夹图标 。 默认 : false

回返情况: Base64 编码数据 URI 字符串

示例

const closedIcon = getMaterialFolderIcon("components");
const openIcon = getMaterialFolderIcon("components", true);

VSCode 图标

getVSIFileIcon(fileName: string): string

使用 VSCode 图标主题返回给定文件名的基准64-编码的 SVG 数据 URI .

参数:

  • fileName (字符串): 有或没有路径的文件名

回返情况: Base64 编码数据 URI 字符串

getVSIFolderIcon(folderName: string, open?: boolean): string

使用 VSCode 图标主题返回给定文件夹名的已编码的 SVG 基准数据 URI .

参数:

  • folderName (字符串):文件夹名称
  • open (布尔,可选): 是否返回打开的文件夹图标 。 默认 : false

回返情况: Base64 编码数据 URI 字符串

工具函数

该套件还输出用于高级用途的公用功能:

import {
  convertToBase64,
  createDataUri,
  findIconInCollection,
  getIconFromMap,
} from "@baybreezy/file-extension-icon";

QQ CLI 工具

此软件包包含一个交互的 CLI 工具,用于浏览和导出图标 !

# Run interactively
npx file-icon

# Or with flags for quick export
npx file-icon -t material -y file -n "index.js" --copy

CLI 特性

  • QQ 浏览材料和 VSCode 图标主题
  • 通过文件/文件夹名搜索或浏览所有图标
  • 复制到剪贴板、 保存到文件或显示在终端
  • 快速而美丽的UI由Clack供电

完整 CLI 文档

QQ 套装大小

这个软件包包含材料和VSCode图标主题的综合图标数据.

  • 软件包大小( 压缩): ~ 2.6 MB 键
  • 未包装大小:~8.6 MB 键
  • 包括: 千个文件和文件夹图标

说明: 现代捆绑有树摇可以只包含您使用的图标来显著地减少最终捆绑的大小. 确保您的捆绑器被配置为树摇摆来优化捆绑大小 .

优化提示

  1. 只导入您需要的 :

    // ✅ Good - Tree-shakeable
    import { getMaterialFileIcon } from "@baybreezy/file-extension-icon";
    // ❌ Avoid - Imports everything
    import * as Icons from "@baybreezy/file-extension-icon";
    
  2. 使用现代捆绑器 有摇树支持(Vite、Rollup、esbuild、webpack 5+)

  3. 考虑代码分割 如果您支持多个图标主题

发展

# Install dependencies
npm install

# Build the package
npm run build

# Run tests
npm test

# Run tests with coverage
npm run test:coverage

# Run tests in UI mode
npm run test:ui

# Type check
npm run typecheck

# Lint code
npm run lint

测试

这一一揽子计划包括全面测试范围:

# Run tests in watch mode
npm test

# Generate coverage report
npm run test:coverage

# Open test UI
npm run test:ui

捐款

欢迎捐款! 请随意提交拉力请求.

许可证

麻省理工学院 贝洪贝克

功劳和承认

此软件包是一个完整的类型脚本重写 file-extension-icon-js 以 MD. 明哈祖尔伊斯兰教。 。 。 .

原始软件包

图标来源

灵感


由 Q 制作 贝洪贝克

版本与发布记录

@baybreezy/file-extension-icon 共发布 4 个版本,首次发布于 2025/10/16;过去 12 个月发布了 3 个版本。

版本发布日期距今
0.0.5latest2026/05/046 个月前
0.0.42025/11/2011 个月前
0.0.32025/11/1611 个月前
0.0.22025/10/161.1 年前

关于 @baybreezy/file-extension-icon 的常见问题

@baybreezy/file-extension-icon 是什么?

用于文件夹和文件扩展名的现代轻量级软件包

如何安装 @baybreezy/file-extension-icon?

在项目目录运行 npm install @baybreezy/file-extension-icon,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 file-icon,可以用 npx file-icon 直接运行。

@baybreezy/file-extension-icon 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@baybreezy/file-extension-icon 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@baybreezy/file-extension-icon 可以商用吗?

@baybreezy/file-extension-icon 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@baybreezy/file-extension-icon 的下载量有多少?

根据 npm 官方下载统计,@baybreezy/file-extension-icon 在 2026/10/08 – 2026/11/06 这 30 天内被下载 1,867 次,日均约 62 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@baybreezy/file-extension-icon 还在维护吗?

最新版本 0.0.5 发布于 2026/05/04(6 个月前);至今共发布 4 个版本,其中过去 12 个月发布了 3 个;首次发布于 2025/10/16。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。