nitro-public-module
TypeScript icon, indicating that this package has built-in type declarations

0.2.0 • Public • Published

nitro-public-module

nitro module for better public compatibility


README 🦉

简体中文 | English


Usage

install

npm i nitro-public-module -D

Configuration Module

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()],
});

preset

// 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


custom

  1. disable preset first
// nitro.config.js
import nitroPublic from "nitro-public-module";

export default defineNitroConfig({
  modules: [
    nitroPublic({
      preset: false,
    }),
  ],
});
  1. 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
});
virtual

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)


License

Made with markthree

Published under MIT License.

Package Sidebar

Install

npm i nitro-public-module

Weekly Downloads

43

Version

0.2.0

License

MIT

Unpacked Size

17.3 kB

Total Files

14

Last publish

Collaborators

  • markthree