vuefinder

n1crackMIT活跃维护

面向 Vue 3 的轻量文件管理器组件,支持文件浏览、预览与整理,方便在后台或管理系统中快速集成文件管理能力。

A sleek, developer-friendly file manager for Vue — organize, preview, and manage files with ease.

4.8.0发布于 2026-10-31 16:28 UTC607star +1 / 7 天108fork同步于 2026-11-10 23:55 UTC

怎么上手

由 README 提炼,执行前请确认
npm i vuefinder
硬件要求按 README 说明

README 未说明,作为前端 Vue 组件在浏览器中运行,无显存或 GPU 要求

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

Vue 3 文件管理器组件,帮你快速搭出带预览和上传的云盘界面

面向 Vue 3 的轻量文件管理器组件,支持文件浏览、预览与整理,方便在后台或管理系统中快速集成文件管理能力。

核心能力

  • 通过自定义 driver 对接任意后端 HTTP 接口
  • 内置图片裁剪、缩略图懒加载与文本代码预览
  • 集成 Uppy 上传与 CSV 解析等常用文件操作
  • 后端无关,官方提供 PHP 包与 OpenAPI 规范

容易踩的坑

需自行实现或部署后端 driver 接口,否则无法读写文件;官方即插即用的后端只有 PHP 包,其他语言需按 OpenAPI 规范自行实现;依赖 Vue 3+,旧版 Vue 不适用

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本4.8.0
  1. 4.8.0最新正式版2026-10-31 · 2026-10-31 16:28 UTC
    • feat: optional DirEntry.thumbnailUrl for lightweight grid thumbnails, falling back to previewUrl then adapter.getPreviewUrl() (#261, closes #260, thanks @royoky)
  2. 4.7.72026-10-29 · 2026-10-29 19:53 UTC
    查看更新说明

    Fixes

    • File sizes are shown with three significant digits instead of being rounded to a whole number — 1.5 KiB instead of 2 KiB, 1.46 MiB instead of 1 MiB. Values that round up to the base now carry over to the next unit (1 MiB, not 1024 KiB). Applies to both binary and metricUnits formatting. (#258, thanks @feeva)

    Dependencies

    • Runtime: @tanstack/vue-query 5.105.0, @uppy/core 6.3.0, @uppy/locales 5.3.1, overlayscrollbars 2.17.0, vue 3.5.44 (#256, #257)
    • Dev: vite 8.3.5, vitest 5.0.5, cypress 16.2.1, oxlint 1.90.0, jsdom 30.1.3, vue-tsc 3.3.14, vitepress 2.0.0-alpha.21, npm-run-all2 9.0.4
    • Lockfile refreshed to fix dev-only advisories in follow-redirects, qs, systeminformation and undici (all transitive, never shipped in the published bundle). npm audit is clean.

    Full Changelog: https://github.com/n1crack/vuefinder/compare/4.7.6...4.7.7

  3. 4.7.62026-09-17 · 2026-09-17 09:20 UTC
    查看更新说明

    A maintenance release: no runtime behaviour changes, only dependency updates and a test-suite fix.

    Dependencies

    • vitest 4.1.11 → 5.0.1
    • Every other dependency refreshed to the latest version inside its existing range — vite 8.3.0, vue 3.5.43, cypress 16.1.0, oxlint 1.83.0, jsdom 30.1.0, @tanstack/vue-query 5.103.1, @vue/test-utils 2.5.1, @vitejs/plugin-vue 6.0.9, @uppy/core 6.0.1, @viselect/vanilla 3.10.1, prettier 3.9.7, vite-svg-loader 5.1.3, nanostores 1.5.3
    • qs override raised to ^6.16.0: 6.15.3, reached through cypress → @cypress/request, is affected by GHSA-x5fp-wj9c-mxmx and GHSA-4mjr-xmp4-gh2g. npm audit is clean again. Dev-only, it never shipped in the published bundle.

    CI

    vitest 5 brings jsdom 30.1, where window.localStorage is an accessor with only a getter, so the plain assignment used to install the storage mock in Vuefinder.spec.ts threw and took the whole suite down. The mock is now installed with Object.defineProperty, matching how matchMedia is mocked in the same file.

    Full Changelog: https://github.com/n1crack/vuefinder/compare/4.7.5...4.7.6

  4. 4.7.52026-08-30 · 2026-08-30 17:32 UTC
    查看更新说明

    Fixed

    • uppy upgraded to v6. @uppy/core and @uppy/xhr-upload now sit on ^6.0.0, bumped together — @uppy/xhr-upload@6 peer-depends on a matching @uppy/core major, so the packages cannot move independently. @uppy/locales moves to ^5.2.0.
    • Removed the unused @uppy/vue dependency. It was declared in package.json but never imported anywhere in the source, and its v4 line pulls in @uppy/dashboard, @uppy/webcam, @uppy/status-bar and @uppy/screen-capture as peers — none of which VueFinder uses. Dropping it removes four phantom peer requirements from installs.

    No public API changed, and nothing in uppy's v6 breaking-change list touches VueFinder's surface: the removals there are @uppy/utils, @uppy/store-default, @uppy/companion-client and @uppy/provider-views (merged into @uppy/core subpaths), a Companion websocket token change, and isTouchDevice. This should be a drop-in upgrade.

    Internal

    • The upload flow now has real test coverage. Previously it had none — no unit tests, no e2e — so a uploader dependency bump could only be checked by hand. The new suite drives the actual @uppy/core and @uppy/xhr-upload packages through RemoteDriver.configureUploader and asserts the endpoint, the path meta, auth headers, the upload event lifecycle, network-error handling, and maxFileSize enforcement.
    • dependabot.yml now groups @uppy/* across major, minor and patch updates, so future uppy majors arrive as a single installable PR instead of several mutually unresolvable ones.

    Full Changelog: https://github.com/n1crack/vuefinder/compare/4.7.4...4.7.5

  5. 4.7.42026-08-18 · 2026-08-18 05:41 UTC
    查看更新说明

    Maintenance release. No runtime changes to the published package — all updates are to tooling and devDependencies.

    Fixed

    • CI was failing because Prettier 3.9 changed its union type formatting; four source files are reformatted.
    • The Dependabot config had an empty package-ecosystem, left over from the scaffold template, so version updates never ran. It is now set to npm, with routine minor/patch bumps grouped and github-actions tracked too.
    • Dropped a redundant || {} fallback in an object spread in RemoteDriver, caught by the new linter.

    Changed

    • ESLint replaced by oxlint. Linting is now configured through .oxlintrc.json at the correctness category, matching the previous rule scope. This removes eslint, @typescript-eslint/eslint-plugin, @typescript-eslint/parser, eslint-plugin-vue, eslint-config-prettier and @vue/eslint-config-typescript, and lifts the typescript <6.1.0 peer constraint that blocked future TypeScript upgrades.
    • Updated devDependencies: @types/jsdom 21 → 30, @types/node 22 → 26, @vue/tsconfig 0.8 → 0.9, jsdom 27 → 30, npm-run-all2 8 → 9, prettier-plugin-tailwindcss 0.7 → 0.8, start-server-and-test 2 → 3, plus in-range refreshes. npm audit reports 0 vulnerabilities.
    • Replaced __dirname with import.meta.dirname and added an explicit extension to the vite.config import, so Vite's upcoming native config loader no longer warns.

    Note on TypeScript 7

    TypeScript 7 is not adopted yet. Its npm package ships only the native binary and unstable/* APIs and exports no classic compiler API, so vue-tsc cannot run against it. Since both type-check and type-gen (which emits dist/types) depend on vue-tsc, TypeScript stays on 5.9 until vue-language-tools ships tsgo support.

    Full Changelog: https://github.com/n1crack/vuefinder/compare/4.7.3...4.7.4

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Vuefinder File Manager

    GitHub npm

    About

    A modern, customizable file manager component built for Vue.

    Organize, preview, and manage your files through a beautiful, reactive interface — just like a native file explorer.

    Easily integrate it into your app, connect to any storage (local, S3, etc.), and craft your own cloud experience with full control over uploads, search, and customization.

    If you like it, please follow and ⭐ star on GitHub.

    Demo

    Live Demo - Explore Vuefinder's features and capabilities in action.

    Installation

    npm i vuefinder
    

    For detailed installation instructions, configuration options, and usage examples, visit the documentation website.

    Backend

    You can use any backend language. VueFinder talks to your server through the driver you provide. A driver simply calls your HTTP endpoints and returns data in the expected shape. This keeps VueFinder backend-agnostic while giving you full control over auth, storage, and business rules.

    Server libraries:

    Infrastructure examples:

    • Cloudflare R2 on Workers (TypeScript): r2-explorer-demo — serverless endpoints backed by R2 object storage

    Data contracts are stable and designed to be simple to implement. If you use the PHP package, these endpoints are already provided. For other stacks, mirror the same responses and you're good to go.

    The complete API specification is available as an OpenAPI 3.0 specification for easy integration and validation.

    Older ecosystem libraries (for VueFinder 3.x and earlier):

    Collaboration

    If you want to contribute to the project, please feel free to fork the repository and submit your changes as a pull request. Ensure that the changes you submit are applicable for general use rather than specific to your project.

    Dependencies

    Every dependency here was picked on purpose — best-in-class, fast, and as small as possible — so VueFinder stays lightweight in your bundle.

    License

    Copyright (c) 2018 Yusuf ÖZDEMİR, released under the MIT license