前端構建工具(webpackvite)

這里寫目錄標題

  • 構建工具
    • webpack介紹
      • 配置文件簡介
      • entry
      • output
      • loader
      • babel
      • 插件
      • 開發服務器(webpack-dev-server)
      • soureMap
  • vite

構建工具

當我們習慣了在node中編寫代碼的方式后,在回到前端編寫html、css、js這些東西會感覺到各種的不便。比如:不能放心的使用模塊化規范(瀏覽器兼容性問題)、即使可以使用模塊化規范也會面臨模塊過多時的加載問題。我們就迫切的希望有一款工具可以對代碼進行打包,將多個模塊打包成一個文件。這樣一來即解決了兼容性問題,又解決了模塊過多的問題。構建工具就起到這樣一個作用,通過構建工具可以將使用ESM規范編寫的代碼轉換為舊的JS語法,這樣可以使得所有的瀏覽器都可以支持代碼。

webpack介紹

src 是把所有的源碼放在了這個src 里面。
我們使用打包工具的前提是這個項目得是一個node項目,所以我們在使用webpack要先把項目初始一下 yarn init -y,會出現一個package.json,初始化就完事了。然后就安裝依賴 yarn add -D webpack webpack-cli. -D表示的是開發依賴,區分一下是開發的時候要用的還是運行的時候要用的。然后再項目中創建src 目錄,然后編寫代碼,index.js是默認主目錄,是入口文件。然后執行‘’yarn webpack 來對代碼進行打包,打包好觀察dist目錄。dist目錄就是打包后的版本。dist目錄里有個main.js,就是打包后的代碼,index.js是源碼。在這里插入圖片描述webpack-cli 是命令行工具,沒有安裝不能用yarn webpack打包。

配置文件簡介

webpack.config.js是給node.js看的,所以要遵循node的模塊化規范。怎么區分,src 以內的遵循前端規則,src以外的遵循node的開發規范。在這里插入圖片描述

entry

在這里插入圖片描述
entry 是用來指定打包時的主文件(入口文件 ) 默認是 ./src/index.js。一般不改。在這里插入圖片描述

output

在這里插入圖片描述
在這里插入圖片描述

loader

webpack默認情況下,只會處理js文件,如果我們希望它可以處理其他類型的文件,則要為期引入loader。loader 讓 webpack 能夠去處理其他類型的文件(默認只能處理js文件),并將它們轉換為有效 模塊,以供應用程序使用,以及被添加到依賴圖中。
使用步驟:
1.安裝對應的loader: yarn add css-loader style-loader -D.
2.配置方式:
在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述
css-loader 只負責打包,style-loader 負責渲染生效【單一職責原則】
loader 執行順序為從后向前執行,因此use的數組順序不能調換

babel

在編寫js代碼時,經常需要使用一些js中的新特性,而新特性在舊的瀏覽器中兼容性并不好。此時就導致我們無法使用一些新的特性。babel就是這樣一個工具,可以將新的js語法轉換為舊的js,以提高代碼的兼容性。

使用步驟
1.安裝 npm install -D babel-loader @babel/core @babel/preset-env
在這里插入圖片描述
2.配置

module: {rules: [{test: /\.m?js$/,exclude: /(node_modules|bower_components)/,use: {loader: 'babel-loader',options: {presets: ['@babel/preset-env']}}}]
}

3.在package.json中設置兼容列表
在這里插入圖片描述

插件

在這里插入圖片描述
常用插件
html-webpack-plugin
這個插件可以在打包代碼后,自動在打包目錄生成html頁面
使用步驟:
1.安裝依賴 yarn add -D html-webpack-plugin
2.引入依賴 const HTMLPlugin = require(“html-webpack-plugin”)
3.配置插件
在這里插入圖片描述

開發服務器(webpack-dev-server)

安裝:yarn add -D webpack-dev-server
啟動:yarn webpack server–open(–open 表示啟動服務器后自動打開瀏覽器)
配置 webpack-watch 執行,(在本地文件夾中訪問)代碼發生變化時自動更新打包。在這里插入圖片描述
可以在package.json中配置
1.先用yarn add-D webpack-dev-server 安裝一下
2.就可以啟動了,在命令行打yarn webpack server
3.就會把我們的代碼布置在一個服務器中
4.直接訪問這個地址就行了
在這里插入圖片描述
注意:在執行開發服務器之后,一定要在手動的執行yarn webpack,然后才能把打包的東西放在服務器里,不然可能拿到的不是最新的

soureMap

devtool:“inline-source-map” 把我們的源碼和編譯后的這種代碼給我們做成了一個映射
在這里插入圖片描述

vite

概念
vite也是前端的構建工具
相較于webpack,vite采用了不同的運行方式:
開發時,不對代碼打包,而是采用ESM(ES模塊)的方式來運行項目
在項目部署時,再對項目進行打包
vite的速度比webpack要快很多,使用也很方便(都配置好了)
本質上vite和webpack是打包工具,只是webpack比較底層,需要自己手動去配置。
ESM必須通過url加載頁面(也就是通過服務器運行,不是本身文件)
基本使用
1.安裝開發依賴 yarn add -D vite
2.vite的源碼目錄默認就是項目的根目錄
再頁面中引入js文件的時候要指定 type = ‘module’
修改路徑直接在script 標簽中修改src屬性正確即可(webpack需要配置)
3.開發命令:
vite 啟動開發服務器
vite bulid 打包代碼
vite preview 預覽打包后代碼
4.使用命令構建項目
在這里插入圖片描述
5.使用插件
在這里插入圖片描述
需要使用ES6的模塊化(export default)去暴露文件(區別webpack使用require)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/42877.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/42877.shtml
英文地址,請注明出處:http://en.pswp.cn/web/42877.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

夏季戶外綜合征怎么預防

以下是一些預防夏季戶外綜合征的有效方法: 做好防曬措施: 涂抹高倍數的防曬霜,每隔 2 - 3 小時重新涂抹一次。比如選擇 SPF50、PA 的防曬霜。佩戴寬邊帽子、太陽鏡和遮陽傘,減少陽光直射面部和眼睛。像漁夫帽、大檐帽能有效遮擋陽…

12-阿里云單細胞處理-PBMC(by-jmzeng)

scRNA_10X/seurat-v2/sup-patient1-PBMC.Rmd at master jmzeng1314/scRNA_10X (github.com) s04-運行seurat流程處理一萬個單細胞轉錄組數據并自動化出報告_嗶哩嗶哩_bilibili #section 3已更新#「生信技能樹」單細胞公開課2021_嗶哩嗶哩_bilibili 上傳讀取數據 可以配置租…

模擬型題目

題目類型: 給定操作,允許操作任意次 思路收集: 1.暴力遍歷:如Problem - B - Codeforces 直接讓每一個不同的進行操作 2.歸納:根據模擬來發現規律

RTK_ROS_導航(4):ROS中空地圖的生成與加載

1. 地圖加載 構建空白 Map 如下,以下為python代碼,生成了output_image.pgm 文件 一般你在什么地方運行該代碼,這個文件就生成在什么地方 import numpy as np size = 100 # 單位:m resulition = 0.05 # 單位:mw = round(size / resulition) IMAGE_DATA = np.zeros((w

ChatGPT:Swagger 的疑問

ChatGPT:Swagger 的疑問 這段代碼是做什么的,為什么每個微服務的寫法都一樣 springdoc:api-docs:enabled: true # 1. 是否開啟 Swagger 接文檔的元數據path: /v3/api-docsswagger-ui:enabled: true # 2.1 是否開啟 Swagger 文檔的官方 UI 界面path: /sw…

音視頻解封裝demo:使用libmp4v2解封裝(demux)出mp4文件中的h264視頻數據和aac語音數據

1、README 前言 本demo是使用的mp4v2來將mp4文件解封裝得到h264、aac的,目前demo提供的.a靜態庫文件是在x86_64架構的Ubuntu16.04編譯得到的,如果想在其他環境下測試demo,可以自行編譯mp4v2并替換相應的庫文件(libmp4v2.a&#…

HTTP 范圍Range請求

HTTP 的 Range 請求使客戶端能夠要求服務器僅向其回傳 HTTP 消息的一部分 HTTP 的 Range 請求頭是 HTTP/1.1 協議的一個特性。它允許客戶端請求僅傳輸資源的某個特定部分,而不是整個資源。 適用場景 支持隨機訪問的媒體播放器明確只需大型文件某部分的數據處理工具…

2022 RoboCom 世界機器人開發者大賽-高職組(國賽):智能管家

人上了年紀,記性就會變差,時常不得不翻箱倒柜找東西。智能照護中心現在請你做一個簡單的智能管家程序,把老人家里的東西逐一編號,放進若干個收納箱里。當然收納箱也是有編號的,你的程序要記錄下哪個東西放在哪個收納箱…

R包: phyloseq擴增子統計分析利器

介紹 phyloseq包對多類型數據的綜合軟件,并其對這些數據提供統計分析和可視化方法。 微生物數據分析的主要挑戰之一是如何整合不同類型的數據,從而對其進行生態學、遺傳學、系統發育學、多元統計、可視化和檢驗等分析。同時,由于同行之間需要…

QT學習日記一

創建QT文件步驟 這是創建之后widget.cpp和widget.h文件的具體代碼解釋,也是主要操作的文件,其中main.cpp不用操作,ui則是圖形化操作界面,綜合使用時,添加一個元件要注意重編名和編譯一下,才能在widget這類…

生產者消費者模型和線程同步問題

文章目錄 線程同步概念生產者消費者模型條件變量使用條件變量喚醒條件變量 阻塞隊列 線程同步概念 互斥能保證安全,但是僅有安全不夠,同步可以更高效的使用資源 生產者消費者模型 下面就基于生產者消費者來深入線程同步等概念: 如何理解生產消費者模型: 以函數調用為例: 兩…

[高頻 SQL 50 題(基礎版)]第一千七百五十七題,可回收且低脂產品

題目: 表:Products ---------------------- | Column Name | Type | ---------------------- | product_id | int | | low_fats | enum | | recyclable | enum | ---------------------- product_id 是該表的主鍵(具有唯…

SQLite 命令行客戶端 + HTA 實現簡易UI

SQLite 命令行客戶端 HTA 實現簡易UI SQLite 客戶端.hta目錄結構參考資料 僅用于探索可行性&#xff0c;就只實現了 SELECT。 SQLite 客戶端.hta <!DOCTYPE html> <html> <head><meta http-equiv"Content-Type" content"text/html; cha…

C語言 | Leetcode C語言題解之第226題翻轉二叉樹

題目&#xff1a; 題解&#xff1a; struct TreeNode* invertTree(struct TreeNode* root) {if (root NULL) {return NULL;}struct TreeNode* left invertTree(root->left);struct TreeNode* right invertTree(root->right);root->left right;root->right le…

LeetCode加油站(貪心算法/暴力,分析其時間和空間復雜度)

題目描述 一.原本暴力算法 最初的想法是&#xff1a;先比較gas數組和cost數組的大小&#xff0c;找到可以作為起始點的站點(因為如果你起始點的油還不能到達下一個站點&#xff0c;就不能作為起始點)。當找到過后&#xff0c;再去依次順序跑一圈&#xff0c;如果剩余的油為負數…

從數據倉庫到數據湖(下):熱門的數據湖開源框架

文章目錄 一、前言二、Delta Lake三、Apache Hudi四、Apache Iceberg五、Apache Paimon六、對比七、筆者觀點八、總結八、參考資料 一、前言 在上一篇從數據倉庫到數據湖(上)&#xff1a;數據湖導論文章中&#xff0c;我們簡單講述了數據湖的起源、使用原因及其本質。本篇文章…

Rust入門實戰 編寫Minecraft啟動器#4下載資源

首發于Enaium的個人博客 首先我們需要添加幾個依賴。 model { path "../model" } parse { path "../parse" } reqwest { version "0.12", features ["blocking", "json"] } file-hashing { version "0.1&quo…

Xshell 和寶塔有啥區別

Xshell 和寶塔是兩種不同類型的工具&#xff0c;具有以下顯著區別&#xff1a; 1. 功能和用途 Xshell&#xff1a;主要是一款用于遠程連接服務器的終端模擬軟件。它允許用戶通過 SSH 協議安全地連接到遠程服務器&#xff0c;并在終端中執行命令&#xff0c;進行服務器的管理和…

AI論文作圖——如何表示模型參數凍結狀態

一、LOGO &#x1f525; win10win11 ?? win10win11 二、注意事項&#xff1a; 根據電腦系統&#xff0c;選擇對應的版本。 參考&#xff1a; 【AI論文作圖】如何表示模型參數凍結狀態&#xff1f;

對稱加密和非對稱加密解析

目錄 一、對稱加密二、非對稱加密三、總結 對稱加密和非對稱加密是兩種主要的加密技術&#xff0c;它們在數據安全領域扮演著重要角色。 一、對稱加密 基本原理&#xff1a;對稱加密使用同一個密鑰進行加密和解密。這意味著如果A用某個密鑰加密了信息發送給B&#xff0c;那么B…