vite環(huán)境基礎(chǔ)配置

import { defineConfig } from "vite";
import AutoImport from "unplugin-auto-import/vite";
import Components from "unplugin-vue-components/vite";
import vue from "@vitejs/plugin-vue";
import postcssPxToViewport from 'postcss-px-to-viewport'
import { ElementPlusResolver } from "unplugin-vue-components/resolvers";
import path from "path";
 
export default defineConfig({
  plugins: [
    vue(),
    //頁(yè)面自動(dòng)引入vue 插件
    AutoImport({
      imports: ["vue"],
      dts: "src/auto-import.d.ts",
    }),
    //element plus按需自動(dòng)引入
    AutoImport({
      resolvers: [ElementPlusResolver()],
    }),
    //element plus按需自動(dòng)引入
    Components({
      resolvers: [ElementPlusResolver()],
    }),
  ],
  css: {
    postcss: {
      plugins: [
        postcssPxToViewport({
          viewportWidth: 1920 //---基于1920寬度為100vw
        })
      ]
    }
  },
  build: {
    minify: "terser", // 必須開(kāi)啟:使用terserOptions才有效果
    terserOptions: {
      compress: {
        //生產(chǎn)環(huán)境時(shí)移除console
        drop_console: true,
        drop_debugger: true,
      },
    },
  },
  resolve: {
    alias: {
      "@": path.resolve(__dirname, "src"), 
      // 注意一定不要隨意命名,a b c這樣的,項(xiàng)目的目錄也不能為關(guān)鍵字保留字W锼激涤!
      "comp": resolve(__dirname, "src/components"),
      // 配置圖片要這樣引用也可以自定義方法引入圖片靜態(tài)資源
      "/img": "./src/assets",
    },
  },
  // 跨域
  server: {
    //使用IP能訪問(wèn)
    host: "0.0.0.0",
    // 熱更新
    hmr: true,
    //設(shè)為 true 時(shí)若端口已被占用則會(huì)直接退出栏尚,而不是嘗試下一個(gè)可用端口
    strictPort: false,
    //自定義代理規(guī)則
    proxy: {
      // 選項(xiàng)寫法
      "/api": {
        target: "",
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, ""),
      },
    },
  },
});
vite常用基本配置
{
  root: process.cwd(), // 項(xiàng)目根目錄(index.html 文件所在的位置),
  base: '/', // 開(kāi)發(fā)或生產(chǎn)環(huán)境服務(wù)的公共基礎(chǔ)路徑 配置引入相對(duì)路徑
  mode: 'development', // 模式
  plugins: [vue()], // 需要用到的插件數(shù)組
  publicDir: 'public', // 靜態(tài)資源服務(wù)的文件夾
  cacheDir: 'node_modules/.vite', // 存儲(chǔ)緩存文件的目錄
  resolve: {
    alias: [ // 文件系統(tǒng)路徑別名
      {
        find: /\/@\//,
        replacement: pathResolve('src') + '/'
      }
    ],
    dedupe: [], // 強(qiáng)制 Vite 始終將列出的依賴項(xiàng)解析為同一副本
    conditions: [], // 解決程序包中 情景導(dǎo)出 時(shí)的其他允許條件
    mainFields: [], // 解析包入口點(diǎn)嘗試的字段列表
    extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json'], // 導(dǎo)入時(shí)想要忽略的擴(kuò)展名列表
    preserveSymlinks: false, // 啟用此選項(xiàng)會(huì)使 Vite 通過(guò)原始文件路徑確定文件身份
  },
  css: {
    modules: {
      scopeBehaviour: 'global' | 'local',
      // ...
    },
    postcss: '', // 內(nèi)聯(lián)的 PostCSS 配置 如果提供了該內(nèi)聯(lián)配置胚迫,Vite 將不會(huì)搜索其他 PostCSS 配置源
    preprocessorOptions: { // css的預(yù)處理器選項(xiàng)
      scss: {
        additionalData: `$injectedColor: orange;`
      }
    }
  },
  json: {
    namedExports: true, // 是否支持從.json文件中進(jìn)行按名導(dǎo)入
    stringify: false, //  開(kāi)啟此項(xiàng),導(dǎo)入的 JSON 會(huì)被轉(zhuǎn)換為 export default JSON.parse("...") 會(huì)禁用按名導(dǎo)入
  },
  esbuild: { // 最常見(jiàn)的用例是自定義 JSX
    jsxFactory: 'h',
    jsxFragment: 'Fragment'
  },
  assetsInclude: ['**/*.gltf'], // 指定額外的 picomatch 模式 作為靜態(tài)資源處理
  logLevel: 'info', // 調(diào)整控制臺(tái)輸出的級(jí)別 'info' | 'warn' | 'error' | 'silent'
  clearScreen: true, // 設(shè)為 false 可以避免 Vite 清屏而錯(cuò)過(guò)在終端中打印某些關(guān)鍵信息
  envDir: '/', // 用于加載 .env 文件的目錄
  envPrefix: [], // 以 envPrefix 開(kāi)頭的環(huán)境變量會(huì)通過(guò) import.meta.env 暴露在你的客戶端源碼中
  server: {
    host: '127.0.0.1', // 指定服務(wù)器應(yīng)該監(jiān)聽(tīng)哪個(gè) IP 地址
    port: 5000, // 指定開(kāi)發(fā)服務(wù)器端口
    strictPort: true, // 若端口已被占用則會(huì)直接退出
    https: false, // 啟用 TLS + HTTP/2
    open: true, // 啟動(dòng)時(shí)自動(dòng)在瀏覽器中打開(kāi)應(yīng)用程序
    proxy: { // 配置自定義代理規(guī)則
      '/api': {
        target: 'http://jsonplaceholder.typicode.com',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, '')
      }
    },
    cors: true, // 配置 CORS
    force: true, // 強(qiáng)制使依賴預(yù)構(gòu)建
    hmr: { // 禁用或配置 HMR 連接
      // ...
    },
    watch: { // 傳遞給 chokidar 的文件系統(tǒng)監(jiān)聽(tīng)器選項(xiàng)
      // ...
    },
    middlewareMode: '', // 以中間件模式創(chuàng)建 Vite 服務(wù)器
    fs: {
      strict: true, // 限制為工作區(qū) root 路徑以外的文件的訪問(wèn)
      allow: [], // 限制哪些文件可以通過(guò) /@fs/ 路徑提供服務(wù)
      deny: ['.env', '.env.*', '*.{pem,crt}'], // 用于限制 Vite 開(kāi)發(fā)服務(wù)器提供敏感文件的黑名單
    },
    origin: 'http://127.0.0.1:8080/', // 用于定義開(kāi)發(fā)調(diào)試階段生成資產(chǎn)的 origin
  },
  build: {
    target: ['modules'], // 設(shè)置最終構(gòu)建的瀏覽器兼容目標(biāo)
    polyfillModulePreload: true, // 是否自動(dòng)注入 module preload 的 polyfill
    outDir: 'dist', // 指定輸出路徑
    assetsDir: 'assets', // 指定生成靜態(tài)文件目錄
    assetsInlineLimit: '4096', // 小于此閾值的導(dǎo)入或引用資源將內(nèi)聯(lián)為 base64 編碼
    cssCodeSplit: true, // 啟用 CSS 代碼拆分
    cssTarget: '', // 允許用戶為 CSS 的壓縮設(shè)置一個(gè)不同的瀏覽器 target 與 build.target 一致
    sourcemap: false, // 構(gòu)建后是否生成 source map 文件
    rollupOptions: {}, // 自定義底層的 Rollup 打包配置
    lib: {}, // 構(gòu)建為庫(kù)
    manifest: false, // 當(dāng)設(shè)置為 true禽拔,構(gòu)建后將會(huì)生成 manifest.json 文件
    ssrManifest: false, // 構(gòu)建不生成 SSR 的 manifest 文件
    ssr: undefined, // 生成面向 SSR 的構(gòu)建
    minify: 'esbuild', // 指定使用哪種混淆器
    terserOptions: {}, // 傳遞給 Terser 的更多 minify 選項(xiàng)
    write: true, // 啟用將構(gòu)建后的文件寫入磁盤
    emptyOutDir: true, // 構(gòu)建時(shí)清空該目錄
    brotliSize: true, // 啟用 brotli 壓縮大小報(bào)告
    chunkSizeWarningLimit: 500, // chunk 大小警告的限制
    watch: null, // 設(shè)置為 {} 則會(huì)啟用 rollup 的監(jiān)聽(tīng)器
  },
  preview: {
    port: 5000, // 指定開(kāi)發(fā)服務(wù)器端口
    strictPort: true, // 若端口已被占用則會(huì)直接退出
    https: false, // 啟用 TLS + HTTP/2
    open: true, // 啟動(dòng)時(shí)自動(dòng)在瀏覽器中打開(kāi)應(yīng)用程序
    proxy: { // 配置自定義代理規(guī)則
      '/api': {
        target: 'http://jsonplaceholder.typicode.com',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, '')
      }
    },
    cors: true, // 配置 CORS
  },
  optimizeDeps: {
    entries: [], // 指定自定義條目——該值需要遵循 fast-glob 模式
    exclude: [], // 在預(yù)構(gòu)建中強(qiáng)制排除的依賴項(xiàng)
    include: [], // 可強(qiáng)制預(yù)構(gòu)建鏈接的包
    keepNames: false, // true 可以在函數(shù)和類上保留 name 屬性
  },
  ssr: {
    external: [], // 列出的是要為 SSR 強(qiáng)制外部化的依賴,
    noExternal: '', // 列出的是防止被 SSR 外部化依賴項(xiàng)
    target: 'node', // SSR 服務(wù)器的構(gòu)建目標(biāo)
  }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末索守,一起剝皮案震驚了整個(gè)濱河市晕窑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌卵佛,老刑警劉巖杨赤,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異截汪,居然都是意外死亡疾牲,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門衙解,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)阳柔,“玉大人,你說(shuō)我怎么就攤上這事蚓峦】” “怎么了医咨?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)架诞。 經(jīng)常有香客問(wèn)我,道長(zhǎng)干茉,這世上最難降的妖魔是什么谴忧? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮角虫,結(jié)果婚禮上沾谓,老公的妹妹穿的比我還像新娘。我一直安慰自己戳鹅,他們只是感情好均驶,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著枫虏,像睡著了一般妇穴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上隶债,一...
    開(kāi)封第一講書(shū)人閱讀 51,287評(píng)論 1 301
  • 那天腾它,我揣著相機(jī)與錄音,去河邊找鬼死讹。 笑死瞒滴,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的赞警。 我是一名探鬼主播妓忍,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼愧旦!你這毒婦竟也來(lái)了世剖?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤忘瓦,失蹤者是張志新(化名)和其女友劉穎搁廓,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體耕皮,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡境蜕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了凌停。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片粱年。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖罚拟,靈堂內(nèi)的尸體忽然破棺而出台诗,到底是詐尸還是另有隱情完箩,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布拉队,位于F島的核電站弊知,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏粱快。R本人自食惡果不足惜秩彤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望事哭。 院中可真熱鬧漫雷,春花似錦、人聲如沸鳍咱。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)谤辜。三九已至蓄坏,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間每辟,已是汗流浹背剑辫。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留渠欺,地道東北人妹蔽。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像挠将,于是被迫代替她去往敵國(guó)和親胳岂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容