Vite 中文文档 Vite 中文文档
指南
GitHub (opens new window)
指南
GitHub (opens new window)
  • vite

    • 指引
    • 为什么选 Vite
    • 开始
    • 功能
    • 命令行界面
    • 使用插件
    • 依赖预构建
    • 静态资源处理
    • 构建生产版本
    • 部署静态站点
    • 环境变量和模式
    • 服务端渲染
    • 后端集成
    • 与其他工具比较
    • 故障排除
    • 从 v3 迁移
  • API

  • 配置参考

  • vite

  • API

  • 配置参考

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

  1. ``` ts
  2. // vite.config.ts

  3. import { useDynamicPublicPath } from 'vite-plugin-dynamic-publicpath'
  4. export default defineConfig({
  5.   plugins: [
  6.     useDynamicPublicPath(/** option */),
  7.   ]
  8. })
  9. ```

e.g. basic demo

  1. ``` ts
  2. // main.ts

  3. // Your dynamic cdn
  4. const dynamicCdn = oneOf(['cdn.xxx.com', 'cdn1.xxx.com']);
  5. window.__dynamicImportHandler__ = function(importer) {
  6.     return dynamicCdn + importer;
  7. }
  8. window.__dynamicImportPreload__ = function(preloads) {
  9.     return preloads.map(preload => dynamicCdn + preload);
  10. }
  11. ```

For legacy browser


e.g. legacy browser demo

  1. ``` ts
  2. // vite.config.ts

  3. import legacy from '@vitejs/plugin-legacy'
  4. import { useDynamicPublicPath } from 'vite-plugin-dynamic-publicpath'
  5. export default defineConfig({
  6.   plugins: [
  7.     /**
  8.      * @see https://github.com/vitejs/vite/tree/main/packages/plugin-legacy
  9.      * /
  10.     legacy({
  11.       targets: ['defaults', 'not ie <= 8']
  12.     }),
  13.     /** Attention! The legacy plugin must before loaded than dynamic-publicpath plugin */
  14.     useDynamicPublicPath({
  15.       dynamicImportHandler: 'window.__dynamic_handler__',
  16.       dynamicImportPreload: 'window.__dynamic_preload__'
  17.     }),
  18.   ]
  19. })
  20. ```

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.
Last Updated: 2023-05-23 11:11:51