@astropub/vite-plugin-file

中文文档
0.2.1发布于 2024/12/12MIT-0TypeScriptES Module零依赖近 30 天下载 2831

A Vite plugin for seamless access to file metadata and data streams, supporting modern Web API interfaces like Blob, File, and ArrayBuffer

原始使用文档
文档目录3 节
  1. Installation
  2. Usage
  3. License

Vite-Plugin-File

vite-plugin-file enables seamless access to file information and data in Vite projects.

NPM Version NPM Downloads

  • Efficient File Handling: Stream large files without consuming excess memory.
  • Convenient File Formats: Work seamlessly with modern Web APIs.
    • Work with large files efficiently via ReadableStream.
    • Access the entire file as ArrayBuffer, Blob, or File.
  • Simple Metadata Access: Retrieve critical file information with minimal effort.
    • Retrieve file name, type, size, and last modified time.
    • Access metadata as HTTP-style headers and preconfigured responses.
  • Vite Integration: Built specifically for Vite, ensuring seamless integration.
    • Includes automatic TypeScript typings for ?file imports.

Installation

Install the plugin:

npm install @astropub/vite-plugin-file

Add the plugin to your Vite configuration file:

// vite.config.js
import vitePluginFile from "@astropub/vite-plugin-file"

export default {
  plugins: [vitePluginFile()]
}

Usage

Add the ?file suffix to any file import to access its metadata and contents.

import FaviconIco from "./assets/favicon.ico?file"

File Metadata

Retrieve basic metadata about any file.

import FaviconIco from "./assets/favicon.ico?file"

console.log(FaviconIco.name)         // "favicon.ico"
console.log(FaviconIco.type)         // "image/x-icon"
console.log(FaviconIco.size)         // 9608
console.log(FaviconIco.lastModified) // 1735689600000

File Stream

Stream any file efficiently without loading it into memory.

import FaviconIco from "./assets/favicon.ico?file"

const stream = FaviconIco.stream() // ReadableStream

const response = FaviconIco.response() // Response (with pre-configured headers)

Full File Access

Access the file as ArrayBuffer, Blob, or File.

import FaviconIco from "./assets/favicon.ico?file"

const buffer = await FaviconIco.arrayBuffer()
console.log(buffer.byteLength) // 9608

const blob = await FaviconIco.blob()
console.log(blob.type)         // "image/x-icon"

const file = await FaviconIco.file()
console.log(file.name)         // "favicon.ico"
console.log(file.lastModified) // 1735689600000

File Metadata as Headers

Retrieve the file metadata as HTTP-style headers.

import FaviconIco from "./assets/favicon.ico?file"

const headers = FaviconIco.headers()
console.log(headers.get("content-type"))   // "image/x-icon"
console.log(headers.get("content-length")) // "9608"
console.log(headers.get("last-modified"))  // "Wed, 01 Jan 2025 00:00:00 GMT"

License

Licensed under the MIT-0 License.


Enjoy!

版本与发布记录

@astropub/vite-plugin-file 共发布 3 个版本,首次发布于 2024/12/04;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.2.1latest2024/12/121.9 年前
0.2.02024/12/121.9 年前
0.1.02024/12/041.9 年前

关于 @astropub/vite-plugin-file 的常见问题

@astropub/vite-plugin-file 是什么?

A Vite plugin for seamless access to file metadata and data streams, supporting modern Web API interfaces like Blob, File, and ArrayBuffer

如何安装 @astropub/vite-plugin-file?

在项目目录运行 npm install @astropub/vite-plugin-file,或使用 pnpm add / yarn add / bun add。

@astropub/vite-plugin-file 支持 TypeScript 吗?

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

@astropub/vite-plugin-file 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@astropub/vite-plugin-file 可以商用吗?

@astropub/vite-plugin-file 使用 MIT-0 许可。声明的许可为 MIT-0,请阅读许可原文确认使用条件。以上为概括,不构成法律意见,请以许可原文为准。

@astropub/vite-plugin-file 的下载量有多少?

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

@astropub/vite-plugin-file 还在维护吗?

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