日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

一篇學會如何從Webpack遷移到Vite

來源: 責編: 時間:2023-12-08 09:16:09 283觀看
導讀Vite 是最新的前端開發工具,其受歡迎程度和采用率都在大幅增長??梢圆榭聪聢D中來自 npm trends 的下載。trends推動這一趨勢的是 Vite 核心的一個關鍵概念:開發人員體驗。與 Webpack 相比,Vite 在開發過程中能顯著縮短

Vite 是最新的前端開發工具,其受歡迎程度和采用率都在大幅增長??梢圆榭聪聢D中來自 npm trends 的下載。E6K28資訊網——每日最新資訊28at.com

trendstrendsE6K28資訊網——每日最新資訊28at.com

推動這一趨勢的是 Vite 核心的一個關鍵概念:開發人員體驗。與 Webpack 相比,Vite 在開發過程中能顯著縮短構建時間和熱重載時間。它通過利用瀏覽器中的 ES 模塊等現代瀏覽器功能來實現這一目標。E6K28資訊網——每日最新資訊28at.com

viteE6K28資訊網——每日最新資訊28at.com

在我們深入探討從 Webpack 遷移到 Vite 的過程之前,值得注意的是,前端開發領域正在不斷發展,Vite 并不是唯一受到關注的工具。esbuild 是另一款速度驚人的 JavaScript 捆綁程序和精簡程序,正吸引著網絡開發人員的目光。如果你正在尋找一種零配置的方法,你可能還想了解一下 Parcel,它為許多開發人員提供了無縫體驗。E6K28資訊網——每日最新資訊28at.com

注意事項

雖然 Vite 為你的工作流引入了許多令人興奮的新特性,但與任何新技術一樣,也有一些缺點需要考慮。與 Webpack 這樣成熟的工具相比,首先考慮的是第三方插件的生態系統。E6K28資訊網——每日最新資訊28at.com

在 Webpack 使用的十年間,npm 上有數十個核心/官方 Webpack 插件和數百(可能數千)個社區貢獻的插件。雖然 Vite 的插件支持非常好,但你可能會發現,項目所依賴的插件并沒有與 Vite 對應的插件,這可能會成為你遷移到 Vite 的障礙。E6K28資訊網——每日最新資訊28at.com

安裝Vite

遷移項目的第一步是創建一個新的 Vite 應用程序,并探索要遷移到的工具。你可以用以下方法為新的 Vite 應用程序制作模板:E6K28資訊網——每日最新資訊28at.com

npm create vite@latest

npm createnpm createE6K28資訊網——每日最新資訊28at.com

然后開啟開發服務:E6K28資訊網——每日最新資訊28at.com

npm run dev

現在,在瀏覽器中導航到顯示的 localhost URL。E6K28資訊網——每日最新資訊28at.com

localhostlocalhostE6K28資訊網——每日最新資訊28at.com

Vite 將創建一個包含下圖所示的文件目錄。E6K28資訊網——每日最新資訊28at.com

ViteViteE6K28資訊網——每日最新資訊28at.com

其中許多內容你都不會陌生,可以在你的應用程序中進行類似替換。E6K28資訊網——每日最新資訊28at.com

更改package.json

要開始在現有 Webpack 項目中使用 Vite,請前往要遷移的 Webpack 項目的 package.json,然后安裝 Vite:E6K28資訊網——每日最新資訊28at.com

npm install –save vite

根據你使用的前端框架,你可能還需要安裝特定的框架插件:E6K28資訊網——每日最新資訊28at.com

npm install –save @vitejs/plugin-react

你還可以更新任何構建腳本,使用 Vite 代替 Webpack:E6K28資訊網——每日最新資訊28at.com

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

同時,卸載Webpack:E6K28資訊網——每日最新資訊28at.com

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

現在再來試試新的開發腳本吧!E6K28資訊網——每日最新資訊28at.com

npm run dev

vite.config

除非你非常幸運,否則很可能需要添加一些額外的配置。Vite 使用 vite.config.js 文件進行配置,這在很大程度上類似于現有的 webpack.config.js 文件。E6K28資訊網——每日最新資訊28at.com

你可以在 vitejs.dev 上找到 Vite 配置的完整文檔,但 React 應用程序的簡單 Vite 配置可能如下所示:E6K28資訊網——每日最新資訊28at.com

import { defineConfig } from 'vite'import react from '@vitejs/plugin-react'export default defineConfig({  plugins: [react()],  },})

插件

在插件內部,Vite 使用 Rollup 作為構建工具,你可以通過 npm 安裝任何 Rollup 插件,將其添加到 Vite 中:E6K28資訊網——每日最新資訊28at.com

npm install –save @rollup/plugin-image

同時將它們添加到 vite.config.js 文件的plugins數組中:E6K28資訊網——每日最新資訊28at.com

// vite.config.jsimport image from '@rollup/plugin-image'import { defineConfig } from 'vite'export default defineConfig({  plugins: [      image(),  ],})

等價Vite插件

接下來看看一些流行的Webpack插件和等價的Vite插件。E6K28資訊網——每日最新資訊28at.com

HtmlWebpackPlugin -> vite-plugin-html

HtmlWebpackPlugin 可簡化 HTML 文件的創建,以便為 Webpack 捆綁包提供服務。如果你在項目中使用 HtmlWebpackPlugin,Vite 的 vite-plugin-html 插件也能提供類似功能。你可以這樣安裝:E6K28資訊網——每日最新資訊28at.com

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

在vite.config.js中這樣引入:E6K28資訊網——每日最新資訊28at.com

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 文件創建一個 CSS 文件。它通常用于生產環境,以提高 CSS 的加載效率。這樣做有兩個好處。首先,瀏覽器可以單獨緩存 CSS。其次,由于 CSS 不再嵌入 JavaScript 文件中,因此可以與 JavaScript 同步加載,從而加快頁面加載速度,防止出現沒有樣式的文本。E6K28資訊網——每日最新資訊28at.com

在Vite中,可以使用vite-plugin-purgecss:E6K28資訊網——每日最新資訊28at.com

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

在vite.config.js中這么使用:E6K28資訊網——每日最新資訊28at.com

import htmlPurge from 'vite-plugin-html-purgecss'export default {    plugins: [        htmlPurge(),    ]}

CopyWebpackPlugin -> vite-plugin-static-copy

CopyWebpackPlugin 用于將單個文件或整個目錄復制到構建目錄。Vite 也有一個類似的插件,名為 vite-plugin-static-copy:E6K28資訊網——每日最新資訊28at.com

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

將下列代碼放入vite.config.js:E6K28資訊網——每日最新資訊28at.com

import { viteStaticCopy } from 'vite-plugin-static-copy'export default {  plugins: [    viteStaticCopy({      targets: [        {          src: 'bin/example.wasm',          dest: 'wasm-files'        }      ]    })  ]}

DefinePlugin -> define()

在 Webpack 中,DefinePlugin 用于在編譯時用分配值替換源代碼中的標記。這樣就可以創建可在編譯時配置的全局常量。在 Vite 中,你可以使用 vite.config.js 中的 define 選項實現同樣的效果,因此可能不需要插件:E6K28資訊網——每日最新資訊28at.com

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

總結

這是一份將前端 Webpack 應用程序遷移到 Vite 的簡單指南,其中包括一些最常用的 Webpack 插件。E6K28資訊網——每日最新資訊28at.com

如果你的項目是一個大型復雜項目,構建過程錯綜復雜,Webpack 功能豐富、配置靈活,可能仍然是你的最佳選擇。E6K28資訊網——每日最新資訊28at.com

如果你遷移的是一個較小或中等規模的項目,Vite 確實能提供一些便利。無論是服務器啟動還是熱模塊替換,它的速度都能顯著提高開發效率。其配置的簡潔性也是一個受歡迎的優勢,而且它在設計時考慮到了原生 ES 模塊和現代框架的兼容性,這為它的未來發展奠定了良好的基礎。E6K28資訊網——每日最新資訊28at.com

從 Webpack 過渡到 Vite 確實需要仔細規劃和測試,尤其是在考慮插件替換或重構時。但這一舉措也會帶來可觀的回報。Vite 提供了一個更快、更精簡的開發環境,最終能帶來更順暢、更高效的開發工作流程。E6K28資訊網——每日最新資訊28at.com

時刻關注工具的發展變化總是有益的。也可以考慮探索其他現代工具,如 esbuild 和 Parcel,以找到最適合你項目需求的工具。E6K28資訊網——每日最新資訊28at.com

請記住,工具并不是最重要的,重要的是如何使用它來實現目標。Webpack、Vite、esbuild 和 Parcel 都是優秀的工具,至于使用哪種工具最好,則取決于你的具體需求和限制條件。E6K28資訊網——每日最新資訊28at.com

本文譯自:https://www.sitepoint.com/webpack-vite-migration/E6K28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-39545-0.html一篇學會如何從Webpack遷移到Vite

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 聊一聊對一個 C# 商業程序的反反調試

下一篇: Angular中setTimeout有什么作用?你知道嗎?

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 榆社县| 肥城市| 井研县| 滨海县| 宜春市| 平原县| 宁阳县| 普兰店市| 紫云| 昭觉县| 临猗县| 万盛区| 台北县| 石棉县| 淮滨县| 高邑县| 肇东市| 乌恰县| 平阳县| 九寨沟县| 玛沁县| 莆田市| 泌阳县| 孝感市| 柘荣县| 庆安县| 和林格尔县| 昭平县| 江川县| 三亚市| 永城市| 杨浦区| 盖州市| 克拉玛依市| 洛浦县| 河南省| 孙吴县| 苍梧县| 土默特左旗| 潼关县| 绩溪县|