nitro module for better public compatibility
简体中文 | English
npm i nitro-public-module -D
nuxt
// 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.