自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一篇學(xué)會如何從Webpack遷移到Vite

開發(fā) 前端
如果你遷移的是一個較小或中等規(guī)模的項目,Vite 確實能提供一些便利。無論是服務(wù)器啟動還是熱模塊替換,它的速度都能顯著提高開發(fā)效率。其配置的簡潔性也是一個受歡迎的優(yōu)勢,而且它在設(shè)計時考慮到了原生 ES 模塊和現(xiàn)代框架的兼容性,這為它的未來發(fā)展奠定了良好的基礎(chǔ)。

Vite 是最新的前端開發(fā)工具,其受歡迎程度和采用率都在大幅增長??梢圆榭聪聢D中來自 npm trends 的下載。

trendstrends

推動這一趨勢的是 Vite 核心的一個關(guān)鍵概念:開發(fā)人員體驗。與 Webpack 相比,Vite 在開發(fā)過程中能顯著縮短構(gòu)建時間和熱重載時間。它通過利用瀏覽器中的 ES 模塊等現(xiàn)代瀏覽器功能來實現(xiàn)這一目標(biāo)。

vite

在我們深入探討從 Webpack 遷移到 Vite 的過程之前,值得注意的是,前端開發(fā)領(lǐng)域正在不斷發(fā)展,Vite 并不是唯一受到關(guān)注的工具。esbuild 是另一款速度驚人的 JavaScript 捆綁程序和精簡程序,正吸引著網(wǎng)絡(luò)開發(fā)人員的目光。如果你正在尋找一種零配置的方法,你可能還想了解一下 Parcel,它為許多開發(fā)人員提供了無縫體驗。

注意事項

雖然 Vite 為你的工作流引入了許多令人興奮的新特性,但與任何新技術(shù)一樣,也有一些缺點需要考慮。與 Webpack 這樣成熟的工具相比,首先考慮的是第三方插件的生態(tài)系統(tǒng)。

在 Webpack 使用的十年間,npm 上有數(shù)十個核心/官方 Webpack 插件和數(shù)百(可能數(shù)千)個社區(qū)貢獻的插件。雖然 Vite 的插件支持非常好,但你可能會發(fā)現(xiàn),項目所依賴的插件并沒有與 Vite 對應(yīng)的插件,這可能會成為你遷移到 Vite 的障礙。

安裝Vite

遷移項目的第一步是創(chuàng)建一個新的 Vite 應(yīng)用程序,并探索要遷移到的工具。你可以用以下方法為新的 Vite 應(yīng)用程序制作模板:

npm create vite@latest

npm createnpm create

然后開啟開發(fā)服務(wù):

npm run dev

現(xiàn)在,在瀏覽器中導(dǎo)航到顯示的 localhost URL。

localhostlocalhost

Vite 將創(chuàng)建一個包含下圖所示的文件目錄。

ViteVite

其中許多內(nèi)容你都不會陌生,可以在你的應(yīng)用程序中進行類似替換。

更改package.json

要開始在現(xiàn)有 Webpack 項目中使用 Vite,請前往要遷移的 Webpack 項目的 package.json,然后安裝 Vite:

npm install –save vite

根據(jù)你使用的前端框架,你可能還需要安裝特定的框架插件:

npm install –save @vitejs/plugin-react

你還可以更新任何構(gòu)建腳本,使用 Vite 代替 Webpack:

–  "build": "webpack --mode production",
–  "dev": "webpack serve",
++   "build": "vite build",
++  "dev": "vite serve",

同時,卸載Webpack:

npm uninstall –save webpack webpack-cli wepack-dev-server

現(xiàn)在再來試試新的開發(fā)腳本吧!

npm run dev

vite.config

除非你非常幸運,否則很可能需要添加一些額外的配置。Vite 使用 vite.config.js 文件進行配置,這在很大程度上類似于現(xiàn)有的 webpack.config.js 文件。

你可以在 vitejs.dev 上找到 Vite 配置的完整文檔,但 React 應(yīng)用程序的簡單 Vite 配置可能如下所示:

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'

export default defineConfig({
  plugins: [react()],
  },
})

插件

在插件內(nèi)部,Vite 使用 Rollup 作為構(gòu)建工具,你可以通過 npm 安裝任何 Rollup 插件,將其添加到 Vite 中:

npm install –save @rollup/plugin-image

同時將它們添加到 vite.config.js 文件的plugins數(shù)組中:

// vite.config.js
import image from '@rollup/plugin-image'
import { defineConfig } from 'vite'

export default defineConfig({
  plugins: [
      image(),
  ],
})

等價Vite插件

接下來看看一些流行的Webpack插件和等價的Vite插件。

HtmlWebpackPlugin -> vite-plugin-html

HtmlWebpackPlugin 可簡化 HTML 文件的創(chuàng)建,以便為 Webpack 捆綁包提供服務(wù)。如果你在項目中使用 HtmlWebpackPlugin,Vite 的 vite-plugin-html 插件也能提供類似功能。你可以這樣安裝:

npm install --save-dev vite-plugin-html

在vite.config.js中這樣引入:

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import { createHtmlPlugin } from 'vite-plugin-html'

export default defineConfig({
  plugins: [
    react(),
    createHtmlPlugin({
      entry: 'src/main.js',
      template: 'public/index.html',
      inject: {
        data: {
          title: 'index',
          injectScript: `<script src="./inject.js"></script>`,
        },
    })
  ]
})

MiniCssExtractPlugin -> vite-plugin-purgecss

MiniCssExtractPlugin 是 Webpack 的一個插件,用于將 CSS 提取到單獨的文件中。它會為每個包含 CSS 的 JavaScript 文件創(chuàng)建一個 CSS 文件。它通常用于生產(chǎn)環(huán)境,以提高 CSS 的加載效率。這樣做有兩個好處。首先,瀏覽器可以單獨緩存 CSS。其次,由于 CSS 不再嵌入 JavaScript 文件中,因此可以與 JavaScript 同步加載,從而加快頁面加載速度,防止出現(xiàn)沒有樣式的文本。

在Vite中,可以使用vite-plugin-purgecss:

npm install --save-dev vite-plugin-html-purgecss

在vite.config.js中這么使用:

import htmlPurge from 'vite-plugin-html-purgecss'

export default {
    plugins: [
        htmlPurge(),
    ]
}

CopyWebpackPlugin -> vite-plugin-static-copy

CopyWebpackPlugin 用于將單個文件或整個目錄復(fù)制到構(gòu)建目錄。Vite 也有一個類似的插件,名為 vite-plugin-static-copy:

npm install --save-dev vite-plugin-static-copy

將下列代碼放入vite.config.js:

import { viteStaticCopy } from 'vite-plugin-static-copy'

export default {
  plugins: [
    viteStaticCopy({
      targets: [
        {
          src: 'bin/example.wasm',
          dest: 'wasm-files'
        }
      ]
    })
  ]
}

DefinePlugin -> define()

在 Webpack 中,DefinePlugin 用于在編譯時用分配值替換源代碼中的標(biāo)記。這樣就可以創(chuàng)建可在編譯時配置的全局常量。在 Vite 中,你可以使用 vite.config.js 中的 define 選項實現(xiàn)同樣的效果,因此可能不需要插件:

export default defineConfig({
  define: {
    'process.env.NODE_ENV': JSON.stringify('production'),
  },
})

總結(jié)

這是一份將前端 Webpack 應(yīng)用程序遷移到 Vite 的簡單指南,其中包括一些最常用的 Webpack 插件。

如果你的項目是一個大型復(fù)雜項目,構(gòu)建過程錯綜復(fù)雜,Webpack 功能豐富、配置靈活,可能仍然是你的最佳選擇。

如果你遷移的是一個較小或中等規(guī)模的項目,Vite 確實能提供一些便利。無論是服務(wù)器啟動還是熱模塊替換,它的速度都能顯著提高開發(fā)效率。其配置的簡潔性也是一個受歡迎的優(yōu)勢,而且它在設(shè)計時考慮到了原生 ES 模塊和現(xiàn)代框架的兼容性,這為它的未來發(fā)展奠定了良好的基礎(chǔ)。

從 Webpack 過渡到 Vite 確實需要仔細規(guī)劃和測試,尤其是在考慮插件替換或重構(gòu)時。但這一舉措也會帶來可觀的回報。Vite 提供了一個更快、更精簡的開發(fā)環(huán)境,最終能帶來更順暢、更高效的開發(fā)工作流程。

時刻關(guān)注工具的發(fā)展變化總是有益的。也可以考慮探索其他現(xiàn)代工具,如 esbuild 和 Parcel,以找到最適合你項目需求的工具。

請記住,工具并不是最重要的,重要的是如何使用它來實現(xiàn)目標(biāo)。Webpack、Vite、esbuild 和 Parcel 都是優(yōu)秀的工具,至于使用哪種工具最好,則取決于你的具體需求和限制條件。

本文譯自:https://www.sitepoint.com/webpack-vite-migration/

責(zé)任編輯:武曉燕 來源: 前端F2E
相關(guān)推薦

2021-11-29 09:44:03

UmiJSVite前端

2022-08-15 07:34:36

vite項目Vue3

2021-12-07 08:50:40

字母區(qū)間字符串

2022-01-02 08:43:46

Python

2022-02-07 11:01:23

ZooKeeper

2010-07-20 09:48:33

2021-06-21 14:36:46

Vite 前端工程化工具

2016-10-26 16:44:44

WatchfinderAWS云計算

2023-01-03 08:31:54

Spring讀取器配置

2021-05-11 08:54:59

建造者模式設(shè)計

2021-07-05 22:11:38

MySQL體系架構(gòu)

2021-07-06 08:59:18

抽象工廠模式

2022-08-26 09:29:01

Kubernetes策略Master

2023-11-28 08:29:31

Rust內(nèi)存布局

2021-07-02 09:45:29

MySQL InnoDB數(shù)據(jù)

2022-08-23 08:00:59

磁盤性能網(wǎng)絡(luò)

2021-07-02 08:51:29

源碼參數(shù)Thread

2021-07-16 22:43:10

Go并發(fā)Golang

2021-09-28 08:59:30

復(fù)原IP地址

2022-04-12 08:30:52

回調(diào)函數(shù)代碼調(diào)試
點贊
收藏

51CTO技術(shù)棧公眾號