{"id":20702952,"url":"https://github.com/zheeeng/vite-plugin-virtual-plain-text","last_synced_at":"2025-10-09T19:39:40.974Z","repository":{"id":57393219,"uuid":"372691237","full_name":"zheeeng/vite-plugin-virtual-plain-text","owner":"zheeeng","description":"A Vite plugin loads file as plain text from the virtual assets workspace.","archived":false,"fork":false,"pushed_at":"2023-11-07T09:22:49.000Z","size":64,"stargazers_count":15,"open_issues_count":2,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-23T00:16:40.821Z","etag":null,"topics":["plaintext","plugin","vite","vite-plugin","vite-plugin-plain-text","vite-plugin-virtual-plain-text","vitejs"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/vite-plugin-virtual-plain-text","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zheeeng.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2021-06-01T03:32:50.000Z","updated_at":"2024-10-14T07:57:52.000Z","dependencies_parsed_at":"2023-11-07T10:36:07.839Z","dependency_job_id":null,"html_url":"https://github.com/zheeeng/vite-plugin-virtual-plain-text","commit_stats":{"total_commits":25,"total_committers":1,"mean_commits":25.0,"dds":0.0,"last_synced_commit":"f3b361f86396a3c469eeb256e584288826f93f9c"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zheeeng%2Fvite-plugin-virtual-plain-text","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zheeeng%2Fvite-plugin-virtual-plain-text/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zheeeng%2Fvite-plugin-virtual-plain-text/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zheeeng%2Fvite-plugin-virtual-plain-text/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zheeeng","download_url":"https://codeload.github.com/zheeeng/vite-plugin-virtual-plain-text/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250343960,"owners_count":21415042,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["plaintext","plugin","vite","vite-plugin","vite-plugin-plain-text","vite-plugin-virtual-plain-text","vitejs"],"created_at":"2024-11-17T01:05:37.446Z","updated_at":"2025-10-09T19:39:35.937Z","avatar_url":"https://github.com/zheeeng.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# vite-plugin-virtual-plain-text\n\n[![NPM](https://nodei.co/npm/vite-plugin-virtual-plain-text.png?downloads=true\u0026downloadRank=true\u0026stars=true)](https://nodei.co/npm/vite-plugin-virtual-plain-text/)\n\n![publish workflow](https://github.com/zheeeng/vite-plugin-virtual-plain-text/actions/workflows/publish.yml/badge.svg)\n[![npm version](https://img.shields.io/npm/v/vite-plugin-virtual-plain-text.svg)](https://www.npmjs.com/package/vite-plugin-virtual-plain-text)\n\nA Vite plugin to load file content as plain text from the virtual assets workspace.\n\n\u003e This plugin maps virtual asset file paths to local file paths based on the project root.\n\n## Install\n\n```bash\npnpm i -D vite-plugin-virtual-plain-text\n```\n\n```bash\nyarn add -D vite-plugin-virtual-plain-text\n```\n\n```bash\nnpm install --save-dev vite-plugin-virtual-plain-text\n```\n\n## Basic Usage\n\nTo treat all virtual asset imports as plain text:\n\n```ts\n// vite.config.(t|j)s\n\nimport { defineConfig } from 'vite';\n\nimport plainText from 'vite-plugin-virtual-plain-text';\n\nexport default defineConfig({\n  plugins: [\n    plainText(),\n  ],\n});\n```\n\nYou can now load the content of the `LICENSE` file in the project root:\n\n```js\n// component.js\n\nimport LICENSE from '@virtual:plain-text/LICENSE'\n\nconsole.log(LICENSE)\n```\n\nFor TypeScript users, you can create a `.dts` file manually for referencing the virtual assets declaration:\n\n```ts\n// declaration.d.ts\n/// \u003creference types=\"vite-plugin-virtual-plain-text/virtual-assets\" /\u003e\n```\n\nOr, you can use the auto declaration file generation feature, as described in the `Advanced Usage` section below.\n\n## Advanced Usage\n\n### Options Reference\n\n```ts\ntype PlainTextOptions = {\n  virtualNamespace?: string,\n  namedExport?: string | false,\n  dtsAutoGen?: string | false,\n}\n```\n\n### Configure the virtual assets' workspace\n\n```ts\n// vite.config.(t|j)s\n\nimport { defineConfig } from 'vite';\n\nimport plainText from 'vite-plugin-virtual-plain-text';\n\nexport default defineConfig({\n  plugins: [\n    // passing the custom virtual workspace name\n    plainText({ virtualNamespace: '@my-virtual-plain-text-workspace/' }),\n  ],\n});\n```\n\nFor TypeScript users, add a module declaration:\n\n```ts\n// declaration.d.ts\n\ndeclare module '@my-virtual-plain-text-workspace/*' {\n    export const plainText: string\n}\n```\n\nOr, configure auto generation:\n\n```ts\n// vite.config.(t|j)s\n\nimport { defineConfig } from 'vite';\n\nimport plainText from 'vite-plugin-virtual-plain-text';\n\nexport default defineConfig({\n  plugins: [\n    // passing the custom dts file pathname\n    plainText({ virtualNamespace: '@my-virtual-plain-text-workspace/', dtsAutoGen: 'virtual-workspace-declaration' }),\n  ],\n});\n```\n\n`virtual-workspace-declaration.d.ts` will be created in the project's root directory.\n\n### Enabling Named Export\n\n```ts\n// vite.config.(t|j)s\n\nimport { defineConfig } from 'vite';\n\nimport plainText from 'vite-plugin-virtual-plain-text';\n\nexport default defineConfig({\n  plugins: [\n    // passing the custom name of the named exporting variable\n    plainText({ virtualNamespace: '@my-virtual-plain-text-workspace/', namedExport: 'plainText' }),\n  ],\n});\n```\n\n```js\n// component.js\n\nimport { plainText as LICENSE } from '@virtual:plain-text/LICENSE'\n\nconsole.log(LICENSE)\n```\n\n## License\n\nMIT\n\n## Alternative\n\nPlain text transformer: [vite-plugin-plain-text](https://www.npmjs.com/package/vite-plugin-plain-text)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzheeeng%2Fvite-plugin-virtual-plain-text","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzheeeng%2Fvite-plugin-virtual-plain-text","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzheeeng%2Fvite-plugin-virtual-plain-text/lists"}