UNPKG

nitro-public-module

Version:

nitro module for better public compatibility | 对于 nitro 更好的静态资源兼容模块

139 lines (96 loc) 2.41 kB
# nitro-public-module nitro module for better public compatibility <br /> ## README 🦉 [简体中文](./README_CN.md) | English <br /> ## Usage ### install ```shell npm i nitro-public-module -D ``` ### Configuration Module > nuxt ```ts // nuxt.config.ts import nitroPublic from "nitro-public-module"; export default defineNuxtConfig({ nitro: { modules: [nitroPublic()], }, }); ``` > nitro ```ts // nitro.config.js import nitroPublic from "nitro-public-module"; export default defineNitroConfig({ modules: [nitroPublic()], }); ``` <br /> ### preset ```ts // nitro.config.js import nitroPublic from "nitro-public-module"; export default defineNitroConfig({ modules: [ nitroPublic({ // support "spa", "ssg""fallback" and false (disable),default to "fallback" preset: "fallback", }), ], }); ``` #### fallback Support rollback of any file in production environment (even if dynamically added to public) #### spa Allow you to run `spa` app in public #### ssg Allow you to run `ssg` app in public <br /> #### custom 1. disable preset first ```ts // nitro.config.js import nitroPublic from "nitro-public-module"; export default defineNitroConfig({ modules: [ nitroPublic({ preset: false, }), ], }); ``` 2. create custom middleware ```ts // middleware/public-fallback.ts import { createPublicFallbackMiddleware } from "#nitro-public"; export default createPublicFallbackMiddleware((withoutSlashPathname) => { // some logic... return { file: "index.html", // your file contentType: "text/html", // If not set, it will be inferred from the extname of the file withPublicDir: true, // Default to true, help you process the path }; }, { skipDev: false, // Default to true, skip in development environment }); ``` ##### virtual In addition to providing `createPublicFallbackMiddleware`, `#nitro-public` also offers `publicDir` and `serverDir` ```ts import { createPublicFallbackMiddleware, publicDir, serverDir, } from "#nitro-public"; ``` All functions are `type safe` and support `development` and `production` environments (for pure node runtime) <br /> ## License Made with [markthree](https://github.com/markthree) Published under [MIT License](./LICENSE).