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.

/nitro-public-module/

    Package Sidebar

    Install

    npm i nitro-public-module

    Weekly Downloads

    31

    Version

    0.2.0

    License

    MIT

    Unpacked Size

    17.3 kB

    Total Files

    14

    Last publish

    Collaborators

    • markthree