最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vite多頁面配置項目實戰(zhàn)

 更新時間:2022年04月08日 10:35:58   作者:智韜  
vite官方文檔中有關于多頁面應用模式如果配置的說明,下面這篇文章主要給大家介紹了關于vite多頁面配置的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下

最近有多頁面項目需要重構,就想試試使用vite,但是網上很多方法不太全面踩了不少的坑,網上的多頁面配置方案也不少,我只給出了我成功配置并在使用的方案

目錄結構

{
    dist: // 存放打包后的文件,
    node_modules: ,
    src: {
        assets: // 一些靜態(tài)文件,
        components: // 公用組件,
        index: { // 頁面1
            index.html,
            main.js,
            App.vue,
            ...
        },
        page: { // 頁面2
            index.html,
            main.js,
            App.vue,
            ...
        },
        ...
        index.html // 用于頁面初始進入時重定向
    },
    package.json: ,
    vite.config.js: // 配置文件
}

Tips:在src中放一個index.html是為了編譯或打包后,輸入localhost:3000/能夠直接跳轉到需要展示的頁面,而不是出現(xiàn)文件目錄或空白頁面,對應代碼為:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vite多頁面</title>
</head>
<body>
<script>
  window.location.href = 'index/index.html' // 需要重定向的頁面
</script>
</body>
</html>

多頁面使用時,vite配置項中注意點

  1. 修改root參數(shù)為多頁面的根目錄:./src/,根據(jù)不同目錄結構而修改
  2. 配置base參數(shù)為/,不然打包后js文件的訪問路徑會出問題
  3. 將build.outDir原輸入路徑dist改為../dist,根據(jù)root參數(shù)配置層級不同而對應修改
  4. rollupOptions.input中配置多個頁面的輸入,以下為我使用的配置項
{
    admin: path.resolve(__dirname, 'src/index.html'), // 用于頁面重定向
    index: path.resolve(__dirname, 'src/index/index.html'), // 頁面一
    page: path.resolve(__dirname, 'src/page/index.html'), // 頁面二
}

vite.config.js 配置,僅供參考

直接上我的配置,東西有點多,僅供參考

import {
  defineConfig
} from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'
export default defineConfig({
  // 服務
  server: {
    // 服務器主機名
    host: '0.0.0.0',
    // 端口號
    port: 3000,
    // 設為 true 時若端口已被占用則會直接退出,
    // 而不是嘗試下移一格端口
    strictPort: false,
    // http.createServer() 配置項
    // https: '',
    proxy: {
      '/api': {
        target: 'http://...............',
        changeOrigin: true,
        rewrite: (path) => {
          return path.replace(/^\/api/, '')
        }
      }
    },

    // 開發(fā)服務器配置 CORS
    // boolean | CorsOptions
    cors: {},
    // 設置為 true 強制使依賴構建
    // force: true,
    // 禁用或配置HMR連接
    hmr: {},
    // 傳遞給 chokidar 的文件系統(tǒng)監(jiān)視器選項
    watch: {}
  },

  // 項目根目錄
  // root: process.cwd(),
  root: './src/',
  // 項目部署的基礎路徑
  base: '/',
  // 環(huán)境配置
  mode: 'development',
  // 全局變量替換 Record<string, string>
  define: {},
  // 插件
  plugins: [vue()],
  // 靜態(tài)資源服務文件夾
  publicDir: 'public',

  resolve: {
    alias: {
      '@': path.resolve(__dirname, 'src'),
      'components': path.resolve(__dirname, 'src/components')
    },
    dedupe: [],
    // 情景導出package.json 配置中的 exports 字段
    conditions: [],
    // 解析package.json 中的字段
    mainFields: ['module', 'jsnext:main', 'jsnext'],
    // 導入時想要省略的擴展名列表
    extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue']
  },

  css: {
    // 配置css modules 的行為, 選項被傳遞給postcss-modules
    modules: {},
    // PostCSS 配置(格式同postcss.config.js)
    // postcss-load-config 的插件配置
    postcss: {},
    // 指定傳遞給 CSS 預處理器的選項
    preprocessorOptions: {
    }
  },

  json: {
    // 是否支持從 .json 文件中進行按名導入
    namedExports: true,
    // 若設置為 true, 導入的 JSON 會被轉換為 export default JSON.parse("...") 會比轉譯成對象字面量性能更好
    // 尤其是當 JSON 文件較大時
    // 開啟此項, 則會禁用按名導入
    stringify: false
  },

  // 繼承自 esbuild 轉換選項, 最常見的用例是自定義 JSX
  esbuild: {
    jsxFactory: 'h',
    jsxFragment: 'Fragment',
    jsxInject: `import React from 'react'`
  },

  // 靜態(tài)資源處理   字符串 || 正則表達式
  assetsInclude: '',
  // 調整控制臺輸出的級別 'info' | 'warn' | 'error' | 'silent'
  logLevel: 'info',
  // 設為 false 可以避免 Vite 清屏而錯過在終端中打印某些關鍵信息
  clearScreen: true,

  build: {
    // 瀏覽器兼容性 ‘esnext' | 'modules'
    target: 'modules',
    //輸出路徑
    outDir: '../dist',
    // 生成靜態(tài)資源的存放路徑
    assetsDir: '../assets',
    // 小于此閾值的導入或引用資源將內聯(lián)為 base64 編碼, 以避免額外的http請求, 設置為 0, 可以完全禁用此項,
    assetsInlineLimit: 4096,
    // 啟動 / 禁用 CSS 代碼拆分
    cssCodeSplit: true,
    // 構建后是否生成 soutrce map 文件
    sourcemap: false,
    // 自定義底層的 Rollup 打包配置
    rollupOptions: {
      input: {
        admin: path.resolve(__dirname, 'src/index.html'),
        page: path.resolve(__dirname, 'src/page/index.html'),
        index: path.resolve(__dirname, 'src/index/index.html'),
      },
      output: {
        chunkFileNames: 'static/js/[name]-[hash].js',
        entryFileNames: 'static/js/[name]-[hash].js',
        assetFileNames: 'static/[ext]/[name]-[hash].[ext]',
      }
    },

    // @rollup/plugin-commonjs 插件的選項
    commonjsOptions: {},

    // 構建的庫
    // lib: { entry: string, name?: string, formats?: ('es' | 'cjs' | 'umd' | 'iife')[], fileName?: string },

    // 當設置為 true, 構建后將會生成 manifest.json 文件
    manifest: false,

    // 設置為 false 可以禁用最小化混淆
    // 或是用來指定是應用哪種混淆器
    // boolean | 'terser' | 'esbuild'
    minify: 'terser',

    // 傳遞給 Terser 的更多 minify 選項
    terserOptions: {},

    // 設置為false 來禁用將構建好的文件寫入磁盤
    write: true,

    // 默認情況下 若 outDir 在 root 目錄下, 則 Vite 會在構建時清空該目錄。
    emptyOutDir: true,

    // 啟用 / 禁用 brotli 壓縮大小報告
    brotliSize: false,

    // chunk 大小警告的限制
    chunkSizeWarningLimit: 500
  }
})

訪問

頁面一:http://localhost:3000/index/index.html

頁面二:http://localhost:3000/page/index.html

總結

到此這篇關于vite多頁面配置的文章就介紹到這了,更多相關vite多頁面配置內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 部屬vue項目,訪問路徑設置非根,顯示白屏的解決方案

    部屬vue項目,訪問路徑設置非根,顯示白屏的解決方案

    這篇文章主要介紹了部屬vue項目,訪問路徑設置非根,顯示白屏的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue實現(xiàn)簡單購物車小案例

    Vue實現(xiàn)簡單購物車小案例

    這篇文章主要為大家詳細介紹了Vue實現(xiàn)簡單購物車小案例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • vue實現(xiàn)某元素吸頂或固定位置顯示(監(jiān)聽滾動事件)

    vue實現(xiàn)某元素吸頂或固定位置顯示(監(jiān)聽滾動事件)

    這篇文章主要為大家詳細介紹了vue實現(xiàn)某元素吸頂或固定位置顯示,監(jiān)聽滾動事件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • 深入了解Vue.js中的Vuex狀態(tài)管理模式

    深入了解Vue.js中的Vuex狀態(tài)管理模式

    Vuex是Vue.js的官方狀態(tài)管理模式,它為Vue.js應用程序提供了一個集中式的狀態(tài)管理解決方案,Vuex可以幫助我們管理應用程序中所有組件的狀態(tài),使得狀態(tài)管理變得更加簡單和可靠,需要詳細了解可以參考下文
    2023-05-05
  • vue中this.$set()的基本用法實例

    vue中this.$set()的基本用法實例

    最近工作上經常操作數(shù)組數(shù)據(jù),并且要求實時更新視圖數(shù)據(jù),這個時候首先想到的是?vue.set(),下面這篇文章主要給大家介紹了關于vue中this.$set()的基本用法實例,需要的朋友可以參考下
    2023-01-01
  • Vue中的Computed實現(xiàn)原理分析

    Vue中的Computed實現(xiàn)原理分析

    這篇文章主要介紹了Vue中的Computed實現(xiàn)原理,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Vue如何將時間戳轉換日期格式

    Vue如何將時間戳轉換日期格式

    這篇文章主要介紹了Vue如何將時間戳轉換日期格式,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • 基于vue+face-api.js實現(xiàn)前端人臉識別功能

    基于vue+face-api.js實現(xiàn)前端人臉識別功能

    基于face-api.js要實現(xiàn)人臉識別功能,首先要將自己需要的模型文件下載保存在靜態(tài)目錄下,可以通過cdn的方式在index.html中引入face-api.js,本文給大家介紹vue+face-api.js實現(xiàn)前端人臉識別功能,感興趣的朋友一起看看吧
    2023-12-12
  • vue開發(fā)實現(xiàn)評論列表

    vue開發(fā)實現(xiàn)評論列表

    這篇文章主要為大家詳細介紹了vue開發(fā)實現(xiàn)評論列表,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 關于el-form表單驗證中的validator與validate使用時的問題

    關于el-form表單驗證中的validator與validate使用時的問題

    這篇文章主要介紹了關于el-form表單驗證中的validator與validate使用時的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06

最新評論

宁远县| 酉阳| 将乐县| 阿拉善左旗| 南皮县| 长沙市| 巴青县| 鹤壁市| 应城市| 都江堰市| 孙吴县| 壤塘县| 福安市| 张家界市| 凉城县| 甘孜县| 崇礼县| 甘谷县| 屯门区| 昔阳县| 麟游县| 汶上县| 永丰县| 周口市| 泽普县| 江达县| 邯郸市| 萨迦县| 南宁市| 延吉市| 合水县| 信宜市| 西吉县| 定安县| 墨江| 四川省| 濮阳县| 兴安盟| 新乡市| 女性| 奇台县|