{"id":18021300,"url":"https://github.com/gcssloop/vite-plugin-lib-emit-assets","last_synced_at":"2025-04-04T17:23:30.982Z","repository":{"id":201002100,"uuid":"706558259","full_name":"GcsSloop/vite-plugin-lib-emit-assets","owner":"GcsSloop","description":"解决 vite lib 模式资源的问题","archived":false,"fork":false,"pushed_at":"2023-10-19T08:23:41.000Z","size":78,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-29T16:05:49.334Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GcsSloop.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-18T07:28:36.000Z","updated_at":"2023-10-24T12:23:27.000Z","dependencies_parsed_at":null,"dependency_job_id":"42584a00-83b1-4cb7-850b-7b232e980767","html_url":"https://github.com/GcsSloop/vite-plugin-lib-emit-assets","commit_stats":{"total_commits":9,"total_committers":1,"mean_commits":9.0,"dds":0.0,"last_synced_commit":"413287e8551751ba8e80ba5180742ea0d401d7e4"},"previous_names":["gcssloop/vite-plugin-lib-emit-assets"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GcsSloop%2Fvite-plugin-lib-emit-assets","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GcsSloop%2Fvite-plugin-lib-emit-assets/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GcsSloop%2Fvite-plugin-lib-emit-assets/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GcsSloop%2Fvite-plugin-lib-emit-assets/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GcsSloop","download_url":"https://codeload.github.com/GcsSloop/vite-plugin-lib-emit-assets/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247218038,"owners_count":20903190,"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":[],"created_at":"2024-10-30T06:09:29.992Z","updated_at":"2025-04-04T17:23:30.958Z","avatar_url":"https://github.com/GcsSloop.png","language":"TypeScript","readme":"# vite-plugin-lib-emit-assets\n\n注意：本项目基于 [vite-plugin-lib-assets](https://github.com/laynezh/vite-plugin-lib-assets) 改造而来。\n\nVite 插件：用于提取 [`library mode`](https://vitejs.dev/guide/build.html#library-mode) 构建时引用到的资源文件，而不是以 base64 形式內联它们\n\n## 安装\n\n```bash\nnpm i vite-plugin-lib-emit-assets -D\n```\n\n或\n\n```bash\nyarn add vite-plugin-lib-emit-assets -D\n```\n\n或\n\n```bash\npnpm add vite-plugin-lib-emit-assets -D\n```\n\n## 使用\n\n```typescript\n// vite.config.ts\nimport libAssets from 'vite-plugin-lib-emit-assets'\n\nexport default defineConfig({\n  plugins: [\n    libAssets({ /* options */ }),\n  ],\n})\n```\n\n## 配置项\n\n```typescript\nexport interface Options {\n  include?: string | RegExp | (string | RegExp)[]\n  exclude?: string | RegExp | (string | RegExp)[]\n  name?: string | ((resourcePath: string, resourceQuery: string) =\u003e string)\n  limit?: number\n  publicUrl?: string\n}\n```\n\n### `include`\n\n一个或一组 [picomatch](https://github.com/micromatch/picomatch#globbing-features) 表达式，指明哪些文件需要被插件处理。\n\n- Type: `string | RegExp | (string | RegExp)[]`\n- Default: 与 Vite [`assetsInclude`](https://vitejs.dev/config/shared-options.html#assetsinclude) 选项的默认值一样，可以在[这里](https://github.com/vitejs/vite/blob/main/packages/vite/src/node/constants.ts#L91-L135)找到完整的列表。\n- Example:\n  ```typescript\n  libAssetsPlugin({\n    include: /\\.a?png(\\?.*)?$/\n  })\n  ```\n\n### `exclude`\n\n和 `include` 一样，但是用来指明哪些文件需要被插件忽略。\n\n- Type: `string | RegExp | (string | RegExp)[]`\n- Default: `undefined`.\n- Example:\n  ```typescript\n  libAssetsPlugin({\n    exclude: /\\.svg(\\?.*)?$/\n  })\n  ```\n\n### name\n\n资源文件的输出名称，与 `file-loader` 的 [`name`](https://github.com/webpack-contrib/file-loader#name) 配置行为一致\n\n- Type: `string | ((resourcePath: string, resourceQuery: string) =\u003e string)`\n- Default: `'[contenthash].[ext]'`\n- Example:\n  - `string`\n    ```typescript\n    assetsLibPlugin({\n      name: '[name].[contenthash:8].[ext]?[query]'\n    })\n    ```\n  - `function`\n    ```typescript\n    assetsLibPlugin({\n      name: (resourcePath, resourceQuery) =\u003e {\n        // `resourcePath` - `/absolute/path/to/file.js`\n        // `resourceQuery` - `foo=bar`\n    \n        if (process.env.NODE_ENV === 'development') {\n          return '[name].[ext]';\n        }\n    \n        return  '[name].[contenthash:8].[ext]?[query]'\n      },\n    })\n    ```\n\u003e 完整的占位符列表见 [`loader-utils#interpolatename`](https://github.com/webpack/loader-utils#interpolatename)\n\n### `limit`\n\n低于 `limit` 设置体积的文件会以 base64 的格式內联到产物中\n\n- Type: `number`，单位 `Byte`\n- Default: `undefined`，表示所有文件都不会被内联\n- Example:\n  ```typescript\n  assetsLibPlugin({\n    limit: 1024 * 8 // 8KB\n  })\n  ```\n\n### `publicUrl`\n\n资源部署到 CDN 时的路径前缀，***这个选项在构建 `cjs` 和 `esm` 格式时也会生效***\n\n- Type: `string`\n- Default: `''`\n- Example:\n  ```typescript\n  assetsLibPlugin({\n    publicUrl: 'https://cdn.jsdelivr.net/npm/vite-plugin-lib-emit-assets'\n  })\n  ```","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgcssloop%2Fvite-plugin-lib-emit-assets","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgcssloop%2Fvite-plugin-lib-emit-assets","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgcssloop%2Fvite-plugin-lib-emit-assets/lists"}