Skip to content
PluginStats

@file-viewer/vite-plugin weekly downloads statistics

By file-viewer · npm · Vite plugins

Vite plugin for File Viewer on-demand renderer assembly, chunk planning, and offline asset deployment.

View on npm Fresh · Oct 17, 2026

@file-viewer/vite-plugin has 8,516 recorded weekly downloads on npm, a decrease of 20.9% over the past 30 days.

It ranks #953 of 2,256 tracked npm listings by weekly downloads.

Over 90 days, weekly downloads changed by +217%.

PluginStats has 121 daily observations since Jun 19, 2026; the latest is from Oct 17, 2026.

Weekly downloads
8,516
Official API · Oct 17, 2026
7-day growth
-25.8%
-3K weekly downloads
30-day growth
-20.9%
-2.2K weekly downloads
90-day growth
+217%
+5.8K weekly downloads
Rank
#953
Among tracked npm listings

About @file-viewer/vite-plugin

@file-viewer/vite-plugin

GitHub · 文档 · 在线 Demo · 格式矩阵 · 问题反馈 · English

⭐ 如果 File Viewer 对你有帮助,欢迎到 GitHub 点个 Star。

Flyfish File Viewer 的 Vite 按需 renderer 自动装配插件。它可以自动发现已安装的 @file-viewer/preset-* 和 @file-viewer/*-full 包,让 Vue、React、Svelte、jQuery 和 Vanilla JS 组件无需手动传 renderers 就获得对应预览能力;也可以根据业务声明的文件格式生成 virtual:file-viewer-renderers,只 import 命中的 renderer 包,并提供 chunk 分组和离线 worker/WASM/字体资源复制能力。

最快开始

需要完整格式支持时,最快路径是“full 包 + 注册一次 Vite 插件”。full 已内置 preset-all,不要再安装 preset;copyAssets:true 会在开发和构建时自动匹配 full 包,并把 Worker、WASM、字体和 vendor 文件发布到部署基址下的 file-viewer/(根部署即 /file-viewer/):

只安装 full 包而不启用资源复制,PDF Worker、CAD/Typst/Archive WASM 等格式会缺少运行文件,只能获得部分格式支持。

需要更小体积时,改用“标准组件包 + 一个 preset”,Vite 配置保持不变。插件会自动发现已安装的 preset,无需手写 renderer import,也无需显式写 preset:'office':

组件默认 autoRenderers:true,会读取 Vite 插件注入的 preset / renderer registry。常规业务代码只要使用 @file-viewer/vue3、@file-viewer/react、@file-viewer/web、@file-viewer/svelte、@file-viewer/jquery、@file-viewer/vue2.7 或 @file-viewer/vue2.6 即可获得对应能力。

可选 preset:

• @file-viewer/preset-lite: 文本、Markdown、代码、图片、音频、视频。 • @file-viewer/preset-office: PDF、Word、Excel、PowerPoint、OFD、RTF、OpenDocument。 • @file-viewer/preset-engineering: CAD、3D、绘图、XMind、Geo、Typst、Archive、Data、EDA。 • @file-viewer/preset-all: 官方 demo 完整格式矩阵。

如果只需要极少数格式,也可以安装对应 renderer 包,例如 @file-viewer/renderer-pdf、@file-viewer/renderer-word、@file-viewer/renderer-ofd、@file-viewer/renderer-presentation、@file-viewer/renderer-cad、@file-viewer/renderer-drawing、@file-viewer/renderer-3d、@file-viewer/renderer-data、@file-viewer/renderer-eda、@file-viewer/renderer-typst、@file-viewer/renderer-archive、@file-viewer/renderer-text,再通过 formats 做精确裁剪。

vite.config.ts

推荐默认使用 full/preset 自动装配。只传 copyAssets:true 时,插件会自动发现已安装的 @file-viewer/*-full 或 @file-viewer/preset-*,无需写 preset:'all':

只有在需要源码扫描、单格式裁剪、或手动 registry 管理时,再使用自定义能力:

inject 默认开启,插件会把 virtual:file-viewer-renderers 注入 Vite HTML 入口,preset 导入后会自动注册到 core。常规业务只需要安装组件包和对应 preset,组件会通过 autoRenderers 默认读取这些能力。

可定制能力

| 选项 | 说明 |

| copyAssets | true 或 { publicDir, outDir, mode, baseDir };复制匹配的 Worker、WASM、字体和 vendor 资源。检测到 full 时默认发布到 /file-viewer/,这是 full 完整格式支持的必需项;标准包/preset 保持原有根目录行为 | | preset | 'auto' | 'lite' | 'office' | 'engineering' | 'all';默认无显式格式时自动发现已安装 preset | | autoPresets | true 或 preset 列表;常用于 scan:true 时继续自动激活已安装 preset | | formats | 文件扩展名或格式 token,例如 ['pdf', 'docx', 'dwg'] | | renderers | renderer id,例如 ['pdf', 'word', 'cad'] | | scan | true 或 { roots, extensions, maxFileSize },扫描源码 hint 并合并格式 | | inject | 默认 true;设为 false 后手动导入 virtual:file-viewer-renderers | | chunkStrategy | 'renderer' | 'none',控制是否注入 renderer 级 chunk 分组 | | stabilizeInteropChunks | 默认 true;为默认分组和宿主 manualChunks 稳定 Pako / CommonJS 辅助模块及 CodeMirror / Lezer / Sandpack 的分组 | | missingRenderer | 'error' | 'warn' | 'ignore',控制尚未提取的 renderer 映射提示方式 |

如果宿主项目按包名拆分 node_modules,@codemirror/*、@lezer/* 和 Sandpack 之间的循环依赖可能在生产构建中表现为 codemirror-view.* Cannot access ... before initialization。插件同时稳定默认分组和已有的 manualChunks 函数:Pako 与共享 CommonJS 辅助模块归入 vendor-commonjs,避免压缩格式的初始化循环;CodeMirror / Lezer / Sandpack 归入 vendor-codemirror。Vite 8 使用对应的 Rolldown 分组,其它自定义分组保持不变;确实需要完全接管时可设置 stabilizeInteropChunks:false。

copyAssets.baseDir 可以覆盖自动目录:必须是相对路径,不能包含 ..;传空字符串表示显式复制到根目录。插件会为标准包、preset 和 full 包同步统一运行时资源根;full 包仍同时同步 setDefaultFullAssetBaseUrl()。只有设置 inject:false 且不手动导入虚拟模块时,业务才需要调用 setDefaultFileViewerAssetBaseUrl()(full 包同时调用 setDefaultFullAssetBaseUrl())。Vite 配置了 base:'/app/' 时,full 包开发 URL 为 /app/file-viewer/...,构建文件仍位于 outDir/file-viewer/。

如果你需要严格控制 registry,可以关闭注入并手动传入:

也可以使用 preset: 'auto' 发现项目中已安装的 preset 包;当 preset-all 存在时会优先使用它,避免重复导入其它 preset。注意:如果同时开启 scan:true,请显式使用 preset:'auto' 或 autoPresets:true,否则插件会以源码 hint 为准,不再做“无配置 preset 自动发现”。

scan: true 会扫描常见源码目录里的轻量 hint,并把它们合并到 formats:

这适合业务把上传入口、示例矩阵或附件白名单维护在源码中时使用:开发和构建阶段插件会自动生成 renderer 装配模块,少写一份手工 import 清单。

缺失 renderer 提示

如果用户打开的是支持矩阵内的格式,但项目没有安装或装配对应 renderer,core 会显示“需要装配预览能力”,并提示推荐安装的 preset / renderer 包,例如 .pdf 会引导安装 @file-viewer/preset-office 或 @file-viewer/renderer-pdf。只有真正不在支持矩阵中的扩展名才显示“不支持在线预览”。

嵌套 Vite 项目

从 3.0.3 起,子目录只有项目元数据或 Vite 插件声明时,会沿祖先 package.json 查找实际可解析的 Full 依赖。子项目明确声明轻量组件或 preset 时保留其根目录资产布局, 不会继承父项目的 Full 布局。copyAssets.baseDir 仍具有最高优先级;publicDir 和 build.outDir 均相对于 Vite root,不相对于依赖所在目录。

当前边界

当前插件会为已经拆出的 renderer 包生成导入:Word、Spreadsheet、PDF、OFD、Presentation、CAD、Draw.io/Excalidraw/Mermaid/PlantUML、3D、Data、EDA、Typst、压缩包、邮件、EPUB、代码/Markdown/Patch/Git Bundle、图片、媒体、XMind 和 Geo。可以通过 formats 显式声明,也可以通过 scan: true 从源码 hint 自动发现;.zipx、.cbz、.tiff、.mjs、.gv、.patch、.bundle、.mermaid、.puml、.mpeg 等 core 支持的扩展也会映射到对应 renderer。开启 copyAssets:true 时会识别已安装能力;full 包把匹配资源复制到开发 publicDir/file-viewer/ 与构建 outDir/file-viewer/,标准包/preset 维持根目录行为,包括 Typst compiler / renderer WASM 与默认字体目录。preset: 'auto' | 'lite' | 'office' | 'engineering' | 'all' 会导入对应 @file-viewer/preset-* 包;如果同时声明 formats,插件会在 preset 之外补充额外 renderer。

文档

• 按需渲染架构: • 支持格式:

格式与相关包

File Viewer 在浏览器内预览 275+ 种扩展名,覆盖 Office、PDF/OFD、CAD、3D、压缩包、邮件、图片、音视频和代码,无需服务端转码;完整清单见 格式矩阵。

• 组件:@file-viewer/web、@file-viewer/vue3、@file-viewer/vue2.7、@file-viewer/vue2.6、@file-viewer/react、@file-viewer/react-legacy、@file-viewer/svelte、@file-viewer/jquery,以及对应的 -full 包 • 能力组合:@file-viewer/preset-lite、@file-viewer/preset-office、@file-viewer/preset-engineering、@file-viewer/preset-all • 构建:@file-viewer/vite-plugin、file-viewer-copy-assets

许可证

本包采用 Apache-2.0。详见 LICENSE。

Description from the npm listing.

  • file-viewer
  • vite-plugin
  • renderer-preset
  • document-preview
  • on-demand-renderer
  • document-viewer
  • file-preview
  • self-hosted

Where @file-viewer/vite-plugin sits in the listing

Each band is one page of 20. Weekly downloads on a log scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.

All npm2,256 listings · 113 pages · page 48, #13 (overall #953)
All npm: every listing in weekly downloads order
PNG SVG
Vite plugins250 listings · 13 pages · page 8, #20 (overall #160)
Vite plugins: every listing in weekly downloads order
PNG SVG

Charts

Images: 30d · 1y · all time · 1600×900 dark

Adoption over time

@file-viewer/vite-plugin weekly downloads on npm, last 90 days: 8,516 weekly downloads as of Oct 17, 2026, +217% over 90 days.@file-viewer/vite-pluginWeekly downloads on npm · Last 90 days8,516downloads / week+217% over 90 days02K4K6K8K10K12K14K16K18KJul 19Aug 3Aug 18Sep 2Sep 17Oct 2Oct 17downloads / weekobservedarchived (Internet Archive)no observationsJul 21, 2026 – Oct 17, 2026 · 89 observations · Updated Oc…pluginstats.com
@file-viewer/vite-plugin weekly downloads on npm, last 90 days: 8,516 weekly downloads as of Oct 17, 2026, +217% over 90 days.
PNG SVG

7/30/90-day growth

@file-viewer/vite-plugin weekly downloads growth on npm: -25.8% over 7 days, -20.9% over 30 days, +217% over 90 days.@file-viewer/vite-pluginWeekly downloads growth on npm8,516downloads / week now7-day growth-2,967 weekly downloads-25.8%30-day growth-2,248 weekly downloads-20.9%90-day growth+5,831 weekly downloads+217%Growth vs. nearest observation to each baseline date · Updated Oct 17, 2026pluginstats.com
@file-viewer/vite-plugin weekly downloads growth on npm: -25.8% over 7 days, -20.9% over 30 days, +217% over 90 days.
PNG SVG

Ranking history

@file-viewer/vite-plugin npm ranking history: currently #953 (by weekly downloads).@file-viewer/vite-pluginnpm ranking · by weekly downloads · Last 90 days#953current rank#949#950#951#952#953#954#955Jul 21Aug 5Aug 20Sep 4Sep 19Oct 4Oct 19rankOct 18, 2026 – Oct 19, 2026 · 2 observations · Updated Oct 17, 2026pluginstats.com
@file-viewer/vite-plugin npm ranking history: currently #953 (by weekly downloads).
PNG SVG

Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.

Recent observations

Full history (121)
Recent weekly downloads observations for @file-viewer/vite-plugin
Date (UTC)Weekly downloadsChange vs. previous
8,516-2.3K
10,806-342
11,148-3.7K
14,806-2K
16,7660
16,766+3K
13,757+2.3K
11,483+1.3K
10,171+1.2K
8,978+2K
6,947+968
5,979-1.5K
7,469-983
8,452—

Similar npm Vite plugins plugins

Data source

Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.

Listing: https://www.npmjs.com/package/@file-viewer/vite-plugin. First seen Oct 16, 2026; last successful collection Oct 19, 2026. See the methodology.