nitro module for better public compatibility
简体中文 | English
npm i nitro-public-module -Dnuxt
// nuxt.config.ts
import nitroPublic from "nitro-public-module";
export default defineNuxtConfig({
nitro: {
modules: [nitroPublic()],
},
});nitro
// nitro.config.js
import nitroPublic from "nitro-public-module";
export default defineNitroConfig({
modules: [nitroPublic()],
});// 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",
}),
],
});Support rollback of any file in production environment (even if dynamically added to public)
Allow you to run spa app in public
Allow you to run ssg app in public
- disable preset first
// nitro.config.js
import nitroPublic from "nitro-public-module";
export default defineNitroConfig({
modules: [
nitroPublic({
preset: false,
}),
],
});- create custom middleware
// 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
});In addition to providing createPublicFallbackMiddleware, #nitro-public also
offers publicDir and serverDir
import {
createPublicFallbackMiddleware,
publicDir,
serverDir,
} from "#nitro-public";All functions are type safe and support development and production
environments (for pure node runtime)
Made with markthree
Published under MIT License.