Package detail

vite-plugin-dynamic-publicpath

jy05298.4kMIT1.1.2

A vite plugin for dynamic publicpath, like webpack_public_path

vite, publicpath, dynamic publicpath

readme

vite-plugin-dynamic-publicpath

Why

Use dynamic import handler to change runtime public base path, like webpack's __webpack_public_path__.

Usage

  • run yarn add vite-plugin-dynamic-publicpath --dev
  • add the plugin into vite.config.ts ``` ts // vite.config.ts

import { useDynamicPublicPath } from 'vite-plugin-dynamic-publicpath' export default defineConfig({ plugins: [ useDynamicPublicPath(/* option /), ] })

e.g. [basic demo](https://github.com/jy0529/vite-plugin-dynamic-publicpath/tree/main/examples/dynamic-publicpath-demo)


```ts
// main.ts

// Your dynamic cdn
const dynamicCdn = oneOf(['cdn.xxx.com', 'cdn1.xxx.com']);
window.__dynamicImportHandler__ = function(importer) {
    return dynamicCdn + importer;
}
window.__dynamicImportPreload__ = function(preloads) {
    return preloads.map(preload => dynamicCdn + preload);
}

For legacy browser

e.g. legacy browser demo

// vite.config.ts

import legacy from '@vitejs/plugin-legacy'
import { useDynamicPublicPath } from 'vite-plugin-dynamic-publicpath'
export default defineConfig({
  plugins: [
    /**
     * @see https://github.com/vitejs/vite/tree/main/packages/plugin-legacy
     * /
    legacy({
      targets: ['defaults', 'not ie <= 8'] 
    }),
    /** Attention! The legacy plugin must before loaded than dynamic-publicpath plugin */
    useDynamicPublicPath({
      dynamicImportHandler: 'window.__dynamic_handler__',
      dynamicImportPreload: 'window.__dynamic_preload__'
    }),
  ]
})

Options

dynamicImportHandler

Type: string
Default: window.__dynamicImportHandler__

Register dynamic import handler

dynamicImportPreload

Type: string
Default: window.__dynamicImportPreload__

Register dynamic import preload handler

assetsBase

Type: string
Default: assets

Custom the assets directory.

changelog

1.1.1 (2022-01-15)

1.1.0 (2021-11-05)

Bug Fixes

  • legacy octal escape sequences cannot be used in strict mode (df5edc8)

1.0.2 (2021-07-09)

Bug Fixes

  • PUBLIC_PATH_MARKER replace error (4d2919a)

1.0.1 (2021-07-08)

Bug Fixes

  • unexpected token import error in legacy browser (a164f62)

Features

  • add legacy browser demo (ee56593)