nitro-public-module
Version:
nitro module for better public compatibility | 对于 nitro 更好的静态资源兼容模块
139 lines (96 loc) • 2.41 kB
Markdown
# 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).