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

vue3 build的配置及詳解

 更新時間:2025年09月13日 09:25:09   作者:leijmdas  
這篇文章主要介紹了vue3 build的配置,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

vue3 build的配置

Vue 3 項目的構(gòu)建配置主要集中在 vite.config.js(如果使用 Vite)或 vue.config.js(如果使用 Vue CLI)。

Vite 是目前 Vue 3 官方推薦的構(gòu)建工具。

下面是一個核心配置項的概覽表格,方便你快速了解:

配置類別配置項 (Vite)配置項 (Vue CLI)主要作用與常見值
基礎(chǔ)路徑basepublicPath部署應(yīng)用時的基礎(chǔ)公共路徑。例如:'/my-app/' (子路徑部署), './' (相對路徑)
輸出目錄build.outDiroutputDir打包文件的輸出目錄,默認為 'dist'
靜態(tài)資源目錄build.assetsDirassetsDir放置生成的靜態(tài)資源 (js, css, img, fonts) 的目錄,相對于 outputDir。例如 'assets'
源代碼映射build.sourcemapproductionSourceMap是否為生產(chǎn)環(huán)境構(gòu)建生成 source map 文件,便于調(diào)試。false 可加速構(gòu)建并減小輸出體積
代碼壓縮build.minify(通過 configureWebpack)指定生產(chǎn)環(huán)境代碼壓縮工具。Vite 默認使用 'terser',也可設(shè)置為 'esbuild'(更快)
文件哈希build.rollupOptions.outputfilenameHashing在輸出的文件名中添加哈希值以控制緩存。Vite 通常配置在 rollupOptions.output 中 ,Vue CLI 默認為 true
路徑別名resolve.aliaschainWebpack 或 configureWebpack創(chuàng)建模塊導(dǎo)入的別名,簡化路徑。例如 '@': path.resolve(__dirname, 'src')
開發(fā)服務(wù)器serverdevServer配置開發(fā)服務(wù)器行為,如端口、代理等
CSS 相關(guān)csscss配置 CSS 預(yù)處理器、模塊化、提取行為等
環(huán)境變量.env.[mode] 文件.env.[mode] 文件根據(jù)不同環(huán)境(開發(fā)、生產(chǎn)、測試)設(shè)置變量。Vite 中通過 import.meta.env 訪問

Vite 項目詳細配置 (vite.config.js)

Vite 是 Vue 3 官方推薦的構(gòu)建工具,提供更快的開發(fā)服務(wù)器啟動和熱更新 。

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'
 
export default defineConfig({
  plugins: [vue()], // 使用 Vue 插件
  base: './', // 部署應(yīng)用時的基本 URL。默認是 '/',如果部署到子路徑,需要修改 [3](@ref)
  resolve: {
    alias: {
      '@': path.resolve(__dirname, 'src'), // 設(shè)置路徑別名,簡化導(dǎo)入 [4,5](@ref)
    },
  },
  server: {
    host: '0.0.0.0', // 指定服務(wù)器應(yīng)該監(jiān)聽哪個 IP 地址
    port: 3000, // 指定開發(fā)服務(wù)器端口 [4](@ref)
    open: true, // 在服務(wù)器啟動時自動打開瀏覽器 [4](@ref)
    proxy: { // 配置自定義代理規(guī)則 [4](@ref)
      '/api': {
        target: 'http://your-api-server.com',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, ''),
      },
    },
  },
  build: {
    outDir: 'dist', // 打包輸出目錄 [3](@ref)
    assetsDir: 'assets', // 靜態(tài)資源存放目錄 [3](@ref)
    sourcemap: false, // 是否生成 sourcemap 文件,生產(chǎn)環(huán)境建議關(guān)閉以減小體積 [4](@ref)
    minify: 'terser', // 代碼壓縮工具,可選 'terser' 或 'esbuild',默認為 'esbuild' [5](@ref)
    terserOptions: { // 傳遞給 Terser 的更多 minify 選項 [6](@ref)
      compress: {
        drop_console: true, // 移除 console
        drop_debugger: true, // 移除 debugger
      },
    },
    rollupOptions: { // 自定義底層的 Rollup 打包配置 [4](@ref)
      output: {
        chunkFileNames: 'js/[name]-[hash].js', // 代碼分割后的 chunk 文件命名
        entryFileNames: 'js/[name]-[hash].js', // 入口文件命名
        assetFileNames: '[ext]/[name]-[hash].[ext]', // 靜態(tài)資源文件命名(如字體、圖片)[5](@ref)
      },
    },
  },
  css: {
    preprocessorOptions: { // CSS 預(yù)處理器相關(guān)配置 [4](@ref)
      scss: {
        additionalData: `@import "@/styles/variables.scss";`, // 全局注入 SCSS 變量或 mixin
      },
    },
  },
})

Vue CLI 項目詳細配置 (vue.config.js)

Vue CLI 也是一個常用的工具,可以簡化 Vue 項目的配置和打包過程 。

const { defineConfig } = require('@vue/cli-service')
const path = require('path')
 
module.exports = defineConfig({
  transpileDependencies: true, // 如果需要 Babel 顯式轉(zhuǎn)譯某些依賴,可以在此列出
  publicPath: process.env.NODE_ENV === 'production' ? '/my-app/' : '/', // 部署應(yīng)用包時的基本 URL,類似于 Vite 的 base [8](@ref)
  outputDir: 'dist', // 構(gòu)建文件輸出目錄 [9](@ref)
  assetsDir: 'static', // 放置生成的靜態(tài)資源的目錄 [9](@ref)
  indexPath: 'index.html', // 指定生成的 index.html 的輸出路徑 [9](@ref)
  filenameHashing: true, // 靜態(tài)資源文件名是否包含 hash 以控制緩存 [9](@ref)
  productionSourceMap: false, // 生產(chǎn)環(huán)境是否生成 source map,關(guān)閉可加速構(gòu)建 [8](@ref)
  configureWebpack: { // 簡單調(diào)整 Webpack 配置,會合并到最終配置 [10](@ref)
    resolve: {
      alias: {
        '@': path.resolve(__dirname, 'src'),
      },
    },
  },
  chainWebpack: (config) => { // 基于 webpack-chain 的鏈式操作,用于更細粒度的控制 [10](@ref)
    if (process.env.NODE_ENV === 'production') {
      config.optimization.minimizer('terser').tap((args) => {
        args[0].terserOptions.compress.drop_console = true
        return args
      })
    }
  },
  devServer: {
    port: 8080, // 開發(fā)服務(wù)器端口 [8](@ref)
    open: true, // 啟動后是否打開瀏覽器 [8](@ref)
    proxy: { // 代理配置,解決開發(fā)環(huán)境跨域 [8](@ref)
      '/api': {
        target: 'http://localhost:3000',
        changeOrigin: true,
        pathRewrite: {
          '^/api': '',
        },
      },
    },
  },
})

環(huán)境變量配置

Vue 3 項目通常使用環(huán)境變量來管理不同環(huán)境(開發(fā)、測試、生產(chǎn))的配置 。

創(chuàng)建環(huán)境文件:在項目根目錄創(chuàng)建 .env.development (開發(fā)環(huán)境)、.env.production (生產(chǎn)環(huán)境)、.env.test (測試環(huán)境) 等文件 。

定義變量:在環(huán)境文件中,以 VITE_ 開頭定義變量(Vite 項目) 或 VUE_APP_ 開頭(Vue CLI 項目)。

  • Vite 項目環(huán)境文件示例 (.env.production):
VITE_APP_TITLE=我的應(yīng)用
VITE_API_BASE_URL=https://api.example.com
  • Vue CLI 項目環(huán)境文件示例:
VUE_APP_TITLE=我的應(yīng)用
VUE_APP_API_BASE_URL=https://api.example.com

訪問變量

  • Vite 項目中,通過 import.meta.env.VITE_變量名 訪問 。
  • Vue CLI 項目中,通過 process.env.VUE_APP_變量名 訪問。

常用構(gòu)建命令

package.jsonscripts 中通常會定義這些命令:

  • 開發(fā)環(huán)境npm run dev (Vite) 或 npm run serve (Vue CLI) - 啟動開發(fā)服務(wù)器 。
  • 生產(chǎn)構(gòu)建npm run build - 構(gòu)建生產(chǎn)環(huán)境用的包,輸出到 dist 目錄 。
  • 預(yù)覽構(gòu)建結(jié)果npm run preview (Vite) - 本地預(yù)覽構(gòu)建后的生產(chǎn)包。

可選:配置分析和優(yōu)化

  • 打包分析:可以使用 rollup-plugin-visualizer 等插件分析構(gòu)建產(chǎn)物,優(yōu)化體積 。
  • 代碼分割:通過動態(tài)導(dǎo)入 (import()) 和配置 build.rollupOptions.output.manualChunks (Vite) 或 configureWebpack.optimization.splitChunks (Vue CLI) 來優(yōu)化代碼分割和懶加載 。
  • 兼容舊瀏覽器:使用 @vitejs/plugin-legacy (Vite) 或相應(yīng)的 Babel 配置 (Vue CLI) 為生產(chǎn)構(gòu)建提供傳統(tǒng)瀏覽器兼容性 。

總結(jié)

希望這些信息能幫助你配置和優(yōu)化你的 Vue 3 項目構(gòu)建!

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue中狀態(tài)管理器Pinia的用法詳解

    vue中狀態(tài)管理器Pinia的用法詳解

    Pinia?是?Vue.js?的輕量級狀態(tài)管理庫,最近很受歡迎,它使用?Vue?3?中的新反應(yīng)系統(tǒng)來構(gòu)建一個直觀且完全類型化的狀態(tài)管理庫,下面就跟隨小編一起來學(xué)習(xí)一下它的具體使用吧
    2023-10-10
  • Vuejs第一篇之入門教程詳解(單向綁定、雙向綁定、列表渲染、響應(yīng)函數(shù))

    Vuejs第一篇之入門教程詳解(單向綁定、雙向綁定、列表渲染、響應(yīng)函數(shù))

    組件(Component)是 Vue.js 最強大的功能之一。接下來給大家介紹vuejs單向綁定、雙向綁定、列表渲染、響應(yīng)函數(shù)的相關(guān)知識,非常不錯,感興趣的朋友一起看看吧
    2016-09-09
  • 基于Vue實現(xiàn)封裝一個虛擬列表組件

    基于Vue實現(xiàn)封裝一個虛擬列表組件

    正常情況下,我們對于數(shù)據(jù)都會分頁加載,最近項目中確實遇到了不能分頁的場景,如果不分頁,頁面渲染幾千條數(shù)據(jù)就會感知到卡頓,使用虛擬列表就勢在必行了。本文主要介紹了如何基于Vue實現(xiàn)封裝一個虛擬列表組件,感興趣的可以了解一下
    2023-03-03
  • Vue列表渲染的示例代碼

    Vue列表渲染的示例代碼

    這篇文章主要介紹了Vue列表渲染的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • Vue.js如何使用Socket.IO的示例代碼

    Vue.js如何使用Socket.IO的示例代碼

    這篇文章主要介紹了Vue.js如何使用Socket.IO的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • vue如何監(jiān)聽元素橫向滾動到最右側(cè)

    vue如何監(jiān)聽元素橫向滾動到最右側(cè)

    這篇文章主要介紹了vue如何監(jiān)聽元素橫向滾動到最右側(cè)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 詳解利用jsx寫vue組件的方法示例

    詳解利用jsx寫vue組件的方法示例

    這篇文章主要給大家介紹了關(guān)于利用jsx寫vue組件的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編來一起看看吧。
    2017-07-07
  • Vuex的四個常用核心概念解讀

    Vuex的四個常用核心概念解讀

    本文詳細解析了Vuex中的四個核心概念及其區(qū)別,包括State用于存儲狀態(tài),Getters用于計算屬性并緩存,Mutations是唯一更改State的同步方法,Actions則用于提交Mutations且支持異步操作
    2024-11-11
  • Vue實現(xiàn)導(dǎo)航欄的顯示開關(guān)控制

    Vue實現(xiàn)導(dǎo)航欄的顯示開關(guān)控制

    今天小編就為大家分享一篇Vue實現(xiàn)導(dǎo)航欄的顯示開關(guān)控制,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Vue實現(xiàn)當(dāng)前頁面刷新的4種方法舉例

    Vue實現(xiàn)當(dāng)前頁面刷新的4種方法舉例

    我們在開發(fā)vue的頁面的時候,有時候會遇到需要刷新當(dāng)前頁面功能,但是vue框架自帶的router是不支持刷新當(dāng)前頁面功能,下面這篇文章主要給大家介紹了關(guān)于Vue實現(xiàn)當(dāng)前頁面刷新的4種方法,需要的朋友可以參考下
    2023-04-04

最新評論

湾仔区| 永清县| 镇康县| 平昌县| 呼玛县| 浦江县| 灌云县| 富锦市| 锡林郭勒盟| 东兴市| 桂阳县| 罗山县| 屯留县| 隆化县| 红安县| 红安县| 昌图县| 福泉市| 汝南县| 锡林郭勒盟| 班玛县| 吉安县| 信阳市| 江孜县| 大庆市| 宜兰市| 阿拉善左旗| 临颍县| 石棉县| 揭东县| 广河县| 务川| 卫辉市| 黎平县| 吴堡县| 勃利县| 天台县| 黄平县| 昌黎县| 富民县| 阿图什市|