欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

前端開(kāi)發(fā)利器Vite完整版詳解

 更新時(shí)間:2023年11月14日 10:42:02   作者:勒布朗-前端  
這篇文章主要給大家介紹了關(guān)于前端開(kāi)發(fā)利器Vite完整版詳解的相關(guān)資料,Vite是一種基于ES模塊的開(kāi)發(fā)服務(wù)器和構(gòu)建工具,專為現(xiàn)代化的前端開(kāi)發(fā)而設(shè)計(jì),需要的朋友可以參考下

推薦兩個(gè)插件插件Volar 、 Vue 3 Snippets

序論:

開(kāi)發(fā)環(huán)境:ESM+HMR:來(lái)實(shí)現(xiàn)模塊的熱更新;類似于webpack-server

生產(chǎn)環(huán)境:Rollup: 打包工具rollup的產(chǎn)生就是針對(duì)開(kāi)發(fā)js庫(kù)的,生成代碼只是把我們的代碼轉(zhuǎn)碼成目標(biāo)js并無(wú)其他

Vite 的快,主要體現(xiàn)在兩個(gè)方面: 快速的冷啟動(dòng)和快速的熱更新。而 Vite 之所以能有如此優(yōu)秀的表現(xiàn),完全歸功于 Vite 借助了瀏覽器對(duì) ESM 規(guī)范的支持,采取了與 Webpack 完全不同的 unbundle 機(jī)制。

1.快速冷啟動(dòng):Vite只啟動(dòng)一臺(tái)靜態(tài)頁(yè)面的服務(wù)器,不會(huì)打包全部項(xiàng)目文件代碼,服務(wù)器根據(jù)客戶端的請(qǐng)求加載不同的模塊處理,實(shí)現(xiàn)按需加載,而我們所熟知的webpack則是,一開(kāi)始就將整個(gè)項(xiàng)目都打包一遍,再開(kāi)啟dev-server,如果項(xiàng)目規(guī)模龐大,打包時(shí)間必然很長(zhǎng)。

2.打包編譯速度:當(dāng)需要打包到?產(chǎn)環(huán)境時(shí),vite使?傳統(tǒng)的rollup進(jìn)?打包,所以,vite的優(yōu)勢(shì)是體現(xiàn)在開(kāi)發(fā)階段,另外,由于vite使?的是ES Module,所以代碼中不可以使?CommonJs;

3.熱模塊更新:在HRM熱更新??,當(dāng)某個(gè)模塊內(nèi)容改變時(shí),讓瀏覽器去重新請(qǐng)求該模塊即可,?不是像webpack重新將該模塊的所有依賴重新編譯;

vite優(yōu)缺點(diǎn):vite優(yōu)點(diǎn) -unbundle 機(jī)制的核心:

  • 模塊之間的依賴關(guān)系的解析由瀏覽器實(shí)現(xiàn);
  • 文件的轉(zhuǎn)換由 dev server 的 middlewares 實(shí)現(xiàn)并做緩存;
  • 不對(duì)源文件做合并捆綁操作;

vite缺點(diǎn):由于 unbundle 機(jī)制,首屏期間、懶加載方面需要額外做以下工作:和 Webpack 對(duì)比,Vite 把需要在 dev server 啟動(dòng)過(guò)程中完成的工作,轉(zhuǎn)移到了 dev server 響應(yīng)瀏覽器請(qǐng)求的過(guò)程中,不可避免的導(dǎo)致首屏性能下降。不過(guò)首屏性能差只發(fā)生在 dev server 啟動(dòng)以后第一次加載頁(yè)面時(shí)發(fā)生。之后再 reload 頁(yè)面時(shí),首屏性能會(huì)好很多。原因是 dev server 會(huì)將之前已經(jīng)完成轉(zhuǎn)換的內(nèi)容緩存起來(lái)。

  • 不對(duì)源文件做合并捆綁操作,導(dǎo)致大量的 http 請(qǐng)求;
  • dev server 運(yùn)行期間對(duì)源文件做 resolve、load、transform、parse 操作;
  • 預(yù)構(gòu)建、二次預(yù)構(gòu)建操作也會(huì)阻塞首屏請(qǐng)求,直到預(yù)構(gòu)建完成為止。

vite架子分析

1、 打包構(gòu)建:

 npm run build

默認(rèn)情況下,構(gòu)建會(huì)輸出到 dist 文件夾中。你可以部署這個(gè) dist 文件夾到任何你喜歡的平臺(tái)。

本地測(cè)試應(yīng)用

vite preview 命令會(huì)在本地啟動(dòng)一個(gè)靜態(tài) Web 服務(wù)器,將 dist 在 http://localhost:4173。這樣在本地環(huán)境下查看該構(gòu)建產(chǎn)物是否正??捎镁头奖愣嗔?。你可以通過(guò) --port 參數(shù)來(lái)配置服務(wù)的運(yùn)行端口。

現(xiàn)在 preview 命令會(huì)將服務(wù)器運(yùn)行在 http://localhost:8080。

 自動(dòng)打開(kāi)瀏覽器:

  "dev": "vite --open",
  "build": "vue-tsc --noEmit && vite build",
  "preview": "vite preview --open"

值得注意的是 vite preview 用作預(yù)覽本地構(gòu)建,而不應(yīng)直接作為生產(chǎn)服務(wù)器。

2、環(huán)境變量

 Vite 在一個(gè)特殊的 import.meta.env 對(duì)象上暴露環(huán)境變量。這里有一些在所有情況下都可以使用的內(nèi)建變量:

import.meta.env.MODE: {string} 應(yīng)用運(yùn)行的模式。
import.meta.env.BASE_URL: {string} 部署應(yīng)用時(shí)的基本 URL。他由base 配置項(xiàng)決定。
import.meta.env.PROD: {boolean} 應(yīng)用是否運(yùn)行在生產(chǎn)環(huán)境。
import.meta.env.DEV: {boolean} 應(yīng)用是否運(yùn)行在開(kāi)發(fā)環(huán)境 (永遠(yuǎn)與 import.meta.env.PROD相反)。
import.meta.env.SSR: {boolean} 應(yīng)用是否運(yùn)行在 server 上。

 自定義環(huán)境變量:

  (1)創(chuàng)建文件:已存在的環(huán)境變量不會(huì)被以下文件中的覆蓋

.env  # 所有情況下都會(huì)加載
.env.local          # 所有情況下都會(huì)加載,但會(huì)被 git 忽略
.env.[mode]         # 只在指定模式下加載,如.env.production的優(yōu)先級(jí)比.env高
.env.[mode].local   # 只在指定模式下加載,但會(huì)被 git 忽略

加載的環(huán)境變量也會(huì)通過(guò) import.meta.env 以字符串形式暴露給客戶端源碼。

為了防止意外地將一些環(huán)境變量泄漏到客戶端,只有以 VITE_ 為前綴的變量才會(huì)暴露給經(jīng)過(guò) vite 處理的代碼。例如下面這些環(huán)境變量:

 只有 VITE_SOME_KEY 會(huì)被暴露為 import.meta.env.VITE_SOME_KEY 提供給客戶端源碼,而 DB_PASSWORD 則不會(huì)。

  (2)添加類型聲明

<reference types="vite/client" />
 interface ImportMetaEnv {
 readonly VITE_APP_TITLE: string
              // 更多環(huán)境變量...
 }
  interface ImportMeta {
  readonly env: ImportMetaEnv
  }

3、模式

默認(rèn)情況下,開(kāi)發(fā)服務(wù)器 (dev 命令) 運(yùn)行在 development (開(kāi)發(fā)) 模式,而 build 命令則運(yùn)行在 production (生產(chǎn)) 模式。這意味著當(dāng)執(zhí)行 vite build 時(shí),它會(huì)自動(dòng)加載 .env.production 中可能存在的環(huán)境變量:

 在你的應(yīng)用中,你可以使用 import.meta.env.VITE_APP_TITLE 渲染標(biāo)題。

 除了默認(rèn)的developmen和production還可以自定義模式,如可能希望有一個(gè) “staging” (預(yù)發(fā)布|預(yù)上線) 模式,它應(yīng)該具有類似于生產(chǎn)的行為,但環(huán)境變量與生產(chǎn)環(huán)境略有不同

 vite build --mode staging
.env.staging文件存放相關(guān)模式下的環(huán)境變量

4、兼容老瀏覽器  

默認(rèn)情況下 Vite 只處理語(yǔ)法轉(zhuǎn)譯,且默認(rèn)不包含任何 polyfill。 通過(guò)引入polyfill: polyfill 是一個(gè)js庫(kù),主要撫平不同瀏覽器之間對(duì)js實(shí)現(xiàn)的差異。 可以前往 Polyfill.io 查看,這是一個(gè)基于用戶瀏覽器 User-Agent 字符串自動(dòng)生成 polyfill 包的服務(wù) 通過(guò)插件支持:通過(guò)插件@vitejs/plugin-legacy來(lái)支持,它將自動(dòng)生成傳統(tǒng)版本的 chunk 及與其相對(duì)應(yīng) ES 語(yǔ)言特性方面的 polyfill,兼容版的chunk只會(huì)在不支持原生 ESM 的瀏覽器中進(jìn)行按需加載

5、typescript相關(guān)

 (1)esbuild下不支持功能編輯時(shí)報(bào)錯(cuò)

  配置類型導(dǎo)入導(dǎo)出、enum、沒(méi)有import、export導(dǎo)入導(dǎo)出的非模塊文件報(bào)錯(cuò)

tsconfig.json
        {
       "compilerOptions": {
       "isolatedModules":true 上述特性會(huì)在編輯時(shí)報(bào)錯(cuò),否則會(huì)在運(yùn)行時(shí)報(bào)錯(cuò)
            }
 }

(2)導(dǎo)入vite內(nèi)置的一些類型定義

資源導(dǎo)入 (例如:導(dǎo)入一個(gè) .svg 文件)

.import.meta.env 上 Vite 注入的環(huán)境變量的類型定義
.import.meta.hot 上的 HMR API 類型定義

  方式一:在.d.ts 中      

<reference types="vite/client" />

  方式二:在tsconfig.json中

{
    "compilerOptions": {
    "types": ["vite/client"]
              }
}

多頁(yè)面配置

    ├── package.json
    ├── vite.config.js
    ├── index.html
    ├── main.js
    └── nested
        ├── index.html
        └── nested.js
        
      build: {
        rollupOptions: {
          input: {
            main: resolve(__dirname, 'index.html'),
            nested: resolve(__dirname, 'nested/index.html')
          }
        }
      }

6、基本配置

區(qū)分不同環(huán)境配置

  • command:根據(jù)運(yùn)行的命令區(qū)分配置,serve為開(kāi)發(fā)環(huán)境,否則為build生產(chǎn)環(huán)境
  • mode:根據(jù)環(huán)境區(qū)分配置  
export default defineConfig(async ({ command, mode }) => {
          const config=await fn();    支持使用Promise
          if (command === 'serve') {
            return { 
            }
          } else if(command='build'){
            return {
            }
          }
})

核心配置全集

export default defineConfig({
 
  base: "./", //開(kāi)發(fā)或生產(chǎn)環(huán)境服務(wù)的公共基礎(chǔ)路徑, 絕對(duì) URL 路徑名,例如 /foo/
  // 完整的 URL,例如 https://foo.com/
  // 空字符串或 ./(用于開(kāi)發(fā)環(huán)境)
  // 通過(guò)命令指定:vite build --base=/my/public/path/
  // 代碼中獲取base:import.meta.env.BASE_URL全局變量在代碼中使用,
  //原樣出現(xiàn)(例如import.meta.env['BASE_URL']是無(wú)效的)
  root: process.cwd(), // 項(xiàng)目根目錄(index.html 文件所在的位置絕對(duì)位置或相對(duì)位置),默認(rèn)process.cwd()
  define: {
    __DEV__: 'dev',
  }, //定義全局常量替換方式。其中每項(xiàng)在開(kāi)發(fā)環(huán)境下會(huì)被定義在全局,而在構(gòu)建時(shí)被靜態(tài)替換
 
  mode: 'development', // 模式將會(huì)把serve和build時(shí)的模式都覆蓋掉。
  //也可以通過(guò)命令行 --mode 選項(xiàng)來(lái)重寫'development'(serve)、'production'(build)
  plugins: [vue()], // 需要用到的插件數(shù)組
  publicDir: 'public', // 靜態(tài)資源服務(wù)的文件夾。該目錄中的文件在開(kāi)發(fā)期間在 / 處提供
  //并在構(gòu)建期間復(fù)制到 outDir 的根目錄,并且始終按原樣提供或復(fù)制而無(wú)需進(jìn)行轉(zhuǎn)換。
  //該值可以是文件系統(tǒng)的絕對(duì)路徑,也可以是相對(duì)于項(xiàng)目的根目錄的相對(duì)路徑。默認(rèn)'public'
  cacheDir: 'node_modules/.vite', // 存儲(chǔ)緩存文件的目錄。此目錄下會(huì)存儲(chǔ)預(yù)打包的依賴項(xiàng)或 vite 
  // 生成的某些緩存文件,使用緩存可以提高性能。如需重新生成緩存文件,你可以使用 --force 命令行選項(xiàng)
  // 或手動(dòng)刪除目錄。此選項(xiàng)的值可以是文件的絕對(duì)路徑,也可以是以項(xiàng)目根目錄為基準(zhǔn)的相對(duì)路徑。
  // 當(dāng)沒(méi)有檢測(cè)到 package.json 時(shí),則默認(rèn)為 .vite。  默認(rèn)"node_modules/.vite"
 
  // 解析相關(guān)
  resolve: {
    alias: [ // 文件系統(tǒng)路徑別名
      {
        "@": path.resolve(__dirname, "src"),
      },
      //或
      {
        find: /\/@\//, //字符串|正則
        replacement: pathResolve('src') + '/'
      }
    ],
    dedupe: [], // 強(qiáng)制 Vite 始終將列出的依賴項(xiàng)解析為同一副本,比如當(dāng)安裝了兩個(gè)不同版本的依賴,
    // 如vue2和vue3,通過(guò)這個(gè)聲明最終引入的版本  []
    conditions: [], // 解決程序包中 情景導(dǎo)出 時(shí)的其他允許條件 [{
    //     "exports": {
    //       ".": {
    //         "import": "./index.esm.js",
    //         "require": "./index.cjs.js"
    //       }
    //     }
    //   }]
    mainFields: [], // 解析包入口點(diǎn)嘗試的字段列表 ,根據(jù)package.json中的字段,
    // 在不同環(huán)境中導(dǎo)入庫(kù)的入口文件位置
    // import引入的文件對(duì)應(yīng)module中的路徑
    // require引入的文件對(duì)應(yīng)main中的路徑
    // 默認(rèn):['module', 'jsnext:main', 'jsnext','main']
    extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json'], //  默認(rèn):['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json']導(dǎo)入時(shí)想要忽略的擴(kuò)展名列表 導(dǎo)入時(shí)想要省略的擴(kuò)展名列表。不建議忽略自定義導(dǎo)入類型的擴(kuò)展名(例如:.vue),因?yàn)樗鼤?huì)影響 IDE 和類型支持
    preserveSymlinks: false, // 啟用此選項(xiàng)會(huì)使 Vite 通過(guò)原始文件路徑(即不跟隨符號(hào)鏈接的路徑)而不是真正的文件路徑(即跟隨符號(hào)鏈接后的路徑)確定文件身份
    // 默認(rèn):false
  },
 
  // css相關(guān)
  css: {
    modules: { //配置 CSS modules 的行為。選項(xiàng)將被傳遞給 postcss-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相關(guān)
  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相關(guān)
  esbuild: { // 最常見(jiàn)的用例是自定義 JSX
    jsxFactory: 'h',
    jsxFragment: 'Fragment'
    // ESbuild會(huì)被應(yīng)用在 ts、jsx、tsx 文件,以下選項(xiàng)對(duì)要處理的文件類型進(jìn)行配置
    // include:string | RegExp | (string | RegExp)[]
    // exclude:string | RegExp | (string | RegExp)[]
    // jsxInject:自動(dòng)為每一個(gè)被 ESbuild 轉(zhuǎn)換的文件注入內(nèi)容
    //     `import React from 'react'` 
  },
 
  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相關(guān)
  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
    // 當(dāng)為true:?jiǎn)⒂?TLS + HTTP/2。注意:當(dāng) server.proxy 選項(xiàng) 也被使用時(shí),將會(huì)僅使用 TLS。
    // 這個(gè)值也可以是一個(gè)傳遞給 https.createServer() 的 選項(xiàng)對(duì)象
    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/, ''),
        ws: true, //WebSocket
      }
    },
    cors: true, // 配置 CORS
    force: true, // 強(qiáng)制使依賴預(yù)構(gòu)建
    hmr: { // 禁用或配置 HMR 連接 熱更新相關(guān)
      // false禁用
      protocol: string, //協(xié)議
      host: string,
      port: number,
      path: string,
      timeout: number,
      overlay: boolean, //為 false 可以禁用開(kāi)發(fā)服務(wù)器錯(cuò)誤的屏蔽
      clientPort: number, //只在客戶端的情況下覆蓋端口,這允許你為 websocket 提供不同的端口,而并非在客戶端代碼中查找。如果需要在 dev-server 情況下使用 SSL 代理,這非常有用。
      server: Server, //當(dāng)使用 server.middlewareMode 或 server.https 時(shí),你需將 server.hmr.server 指定為你 HTTP(S) 的服務(wù)器,這將通過(guò)你的服務(wù)器來(lái)處理 HMR 的安全連接請(qǐng)求。這在使用自簽證書(shū)或想通過(guò)網(wǎng)絡(luò)在某端口暴露 Vite 的情況下,非常有用。
    },
    watch: { // 傳遞給 chokidar 的文件系統(tǒng)監(jiān)聽(tīng)器選項(xiàng) 監(jiān)聽(tīng)文件改變
      // 通過(guò)命令:vite build --watch
      ignored: ['!**/node_modules/your-package-name/**'] //      默認(rèn)會(huì)忽略對(duì) .git/ 和 node_modules/ 目錄的監(jiān)聽(tīng),如果需要對(duì) node_modules/ 內(nèi)的包進(jìn)行監(jiān)聽(tīng),可以為 server.watch.ignored 賦值一個(gè)取反的 glob 模式
      // 其他選項(xiàng):使用的是rollup的選項(xiàng)配置:https://rollupjs.org/guide/en/#watch-options
    },
    middlewareMode: '', // 以中間件模式創(chuàng)建 Vite 服務(wù)器 'ssr' | 'html'    在SSR中使用
    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構(gòu)建相關(guān)
  build: {
    target: ['modules'], // 設(shè)置最終構(gòu)建的瀏覽器兼容目標(biāo)   默認(rèn):'modules'指支持原生 ES 模塊的瀏覽器。
    //  "esnext" :即假設(shè)有原生動(dòng)態(tài)導(dǎo)入支持,并且將會(huì)轉(zhuǎn)譯得盡可能?。?
    //  如果 build.minify 選項(xiàng)為 'terser', 'esnext' 將會(huì)強(qiáng)制降級(jí)為 'es2019'。
    //  其他情況下將完全不會(huì)執(zhí)行轉(zhuǎn)譯。
    // 'es2015':自定義目標(biāo)也可以是一個(gè) ES 版本
    polyfillModulePreload: true, // 是否自動(dòng)注入 module preload 的 polyfill true:此 polyfill 會(huì)被自動(dòng)注入到每個(gè) index.html 入口的 proxy 模塊中
    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)器
  },
 
  // 構(gòu)建預(yù)覽preview相關(guān)
  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相關(guān)
  ssr: {
    external: [], // 列出的是要為 SSR 強(qiáng)制外部化的依賴,
    noExternal: '', // 列出的是防止被 SSR 外部化依賴項(xiàng)
    target: 'node', // SSR 服務(wù)器的構(gòu)建目標(biāo)
  },
 
  // Worker相關(guān)
  worker: {
    format: iife, //worker bundle 的輸出類型。 默認(rèn): 'iife'   'es',
    plugins: [], //適用于 worker bundle 的 Vite 插件。 []
    rollupOptions: [], //用于構(gòu)建 worker bundle 的 Rollup 配置項(xiàng)
  }
})

總結(jié)

到此這篇關(guān)于前端開(kāi)發(fā)利器Vite完整版詳解的文章就介紹到這了,更多相關(guān)Vite完整版詳解內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 利用Vue3 (一)創(chuàng)建Vue CLI 項(xiàng)目

    利用Vue3 (一)創(chuàng)建Vue CLI 項(xiàng)目

    這篇文章主要介紹利用Vue3 創(chuàng)建Vue CLI 項(xiàng)目,下面文章內(nèi)容附有官方文檔鏈接,安裝過(guò)程,需要的可以參考一下
    2021-10-10
  • Vue點(diǎn)擊切換顏色的方法

    Vue點(diǎn)擊切換顏色的方法

    今天小編就為大家分享一篇Vue點(diǎn)擊切換顏色的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • Vuex數(shù)據(jù)的存儲(chǔ)與獲取方式

    Vuex數(shù)據(jù)的存儲(chǔ)與獲取方式

    這篇文章主要介紹了Vuex數(shù)據(jù)的存儲(chǔ)與獲取方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 使用vuex較為優(yōu)雅的實(shí)現(xiàn)一個(gè)購(gòu)物車功能的示例代碼

    使用vuex較為優(yōu)雅的實(shí)現(xiàn)一個(gè)購(gòu)物車功能的示例代碼

    這篇文章主要介紹了使用vuex較為優(yōu)雅的實(shí)現(xiàn)一個(gè)購(gòu)物車功能的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • vue.js輪播圖組件使用方法詳解

    vue.js輪播圖組件使用方法詳解

    這篇文章主要為大家詳細(xì)介紹了vue.js輪播圖組件使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • nuxt.js寫項(xiàng)目時(shí)增加錯(cuò)誤提示頁(yè)面操作

    nuxt.js寫項(xiàng)目時(shí)增加錯(cuò)誤提示頁(yè)面操作

    這篇文章主要介紹了nuxt.js寫項(xiàng)目時(shí)增加錯(cuò)誤提示頁(yè)面操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • vue項(xiàng)目之頁(yè)面class不生效問(wèn)題及解決

    vue項(xiàng)目之頁(yè)面class不生效問(wèn)題及解決

    這篇文章主要介紹了vue項(xiàng)目之頁(yè)面class不生效問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • el-table?樹(shù)形數(shù)據(jù)?tree-props?多層級(jí)使用避坑

    el-table?樹(shù)形數(shù)據(jù)?tree-props?多層級(jí)使用避坑

    本文主要介紹了el-table?樹(shù)形數(shù)據(jù)?tree-props?多層級(jí)使用避坑,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • Vue 實(shí)現(xiàn)定時(shí)刷新與自動(dòng)更新(示例詳解)

    Vue 實(shí)現(xiàn)定時(shí)刷新與自動(dòng)更新(示例詳解)

    在現(xiàn)代 Web 開(kāi)發(fā)中,定時(shí)刷新頁(yè)面或定時(shí)更新數(shù)據(jù)是一種常見(jiàn)的需求,尤其是在需要與服務(wù)器進(jìn)行定時(shí)通信或者展示實(shí)時(shí)數(shù)據(jù)的場(chǎng)景下,Vue.js 提供了簡(jiǎn)單而有效的方法來(lái)實(shí)現(xiàn)定時(shí)刷新和自動(dòng)更新,本文將介紹幾種常見(jiàn)的定時(shí)刷新方式、適用場(chǎng)景、優(yōu)缺點(diǎn)以及性能考慮
    2024-11-11
  • vue 界面刷新數(shù)據(jù)被清除 localStorage的使用詳解

    vue 界面刷新數(shù)據(jù)被清除 localStorage的使用詳解

    今天小編就為大家分享一篇vue 界面刷新數(shù)據(jù)被清除 localStorage的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09

最新評(píng)論