當前位置:首頁 » 網頁前端 » 前端工程構建工具
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

前端工程構建工具

發布時間: 2022-11-12 18:11:40

前端為什麼需要構建工具

目前前端構建工具已經非常豐富,大致分一下類:
一類是任務管理工具(task runner)。通過聲明和組合構建任務來進行整個網站的構建, 有自己的一套任務聲明語法和任務實現介面。例如Grunt和Gulp,這兩個都是插件式的架構。有大量的插件可用,缺點就在於做什麼都只能用插件,沒有就自己寫一個。
一類是打包工具(package tool)。通過為每一類文件配置需要的處理方式,來實現整個站點的構建。如 Webpack 和 FIS ,這兩個都是整個站點的整體構建解決方案。
一類是構建工具(build tool)。比如 Make 。

⑵ Vue3-前端構建工具(Vue-Cli和Vite) & 計算屬性 & 偵聽器

vue3使用環境:Vue CLI 4.x以上,Node.js版本 8.9以上。

main.js

Vite 是一個 web 開發構建工具,由於其原生 ES 模塊導入方式,可以實現閃電般的冷伺服器啟動。使用 Vite 可以快速構建 Vue 項目。
Vite 需要 Node.js版本 12.0以上。

在Vue3中,定義計算屬性,需要引入computed組合式API。computed()函數的參數是一個回調函數,回調函數的返回值,就是計算屬性的返回值。

在Vue3中,定義偵聽器,需要引入 watch組合式API
watch函數 有三個參數:① 偵聽誰,② 回調函數,③ 配置對象(可以省略)。如果監聽的是一個對象/對象里的某個屬性,第一個參數就是一個函數,由該函數返回指定對象中監視的屬性。
注意: watch監視對象,默認開始深度監視,並且無法關閉。所以直接監視整個對象不好。vue3建議我們,監視對象時,指定監視對象的屬性。如果監視的對象屬性也是一個對象,默認不開啟深度監視,需要手動開啟。

watchEffect()監視器: 只有一個回調函數參數,並且沒有參數。特點:① 該回調函數一開始會執行一次;② 不需要明確的去監視誰,回調函數裡面用到了誰,誰變了,就會重新執行回調函數。

在Vue2中可以定義過濾器,但是在Vue3中已經取消了過濾器。Vue3推薦我們使用方法 或 計算屬性的方式,實現之前過濾器的效果。

在vue3的模板中,不再需要根標簽,它內部有一個fragment的組件作為模板的根標簽。

⑶ 前端構建工具webpack有什麼缺陷

1.文檔缺失,尤其中文文檔

長期以來webpack官方文檔和example匱乏,提供的一些例子都是很簡單那種,經常發現完全按照例子來配置但就是跑不起來,中文文檔就更不用說了,少的可憐。這個問題也直接導致下面的第2點。
2.配置難&難調試

稍微復雜一點的項目,如果使用webpack編譯,不經過一段痛苦不堪的配置調試過程是沒法正常跑起來的。這還沒完,在自己機器上跑起來之後可能到了另一個同事哪兒又報錯了等等。總之正如下面有人回答那樣,配置文件一旦跑起來,是根本不敢去改的,生怕又出錯。
webpack的錯誤提示也非常難看懂,基本不可能從錯誤很直觀的找到原因,長期以來碰到問題只能靠猜,你沒看錯,就是靠猜!!
3.編譯慢
經驗不足的同學很容易碰到這個問題,當然可以通過一些手段做優化,比如配置mole的resolve、root等,使用happypack加速、dll提前編譯等等。但是筆者曾經嘗試過happypack,對編譯速度有提升但效果不明顯,dll的話我有按照官方文檔的做法去做,但是最終編譯出來又報了一些莫名其妙的錯(也有可能是代碼寫的有問題),總之心累,後來直接改成externals方式,全局script引入第三方庫。
4.對server-render不友好
webpack本質上還是靜態打包,意思就是打包完成之後其實文件的載入順序已經固定,只是被載入的時間不定而已。所以使用webpack原則上不存在按需載入之類的說法,code split其實是人工分隔,但是真實的按需載入場景豈是人工能枚舉完的 (下劃線這句話不太好解釋,也不想過多解釋,熟悉前端工程的人應該都明白啥意思)。
在這里我要說的對server-render不友好其實是指html的處理,webpack其實是通過在js里用require標記資源然後載入任意資源(css、圖片、fonts等等),但其實html文件才是頁面真實的入口,最終編譯出的js還是需要引入到html里,為了防止css懶載入導致頁面抖動,編譯完的css還需要從js里邊提取出來放到html外鏈。

目前一般都是通過html-webpack-plugin來做這個事情,先搜集某個html所引用的靜態資源最終自動插入到html。這種方式對於前端渲染的應用沒有問題,但是對於server-render的那就不行了,因為server-render下html是作為模板由後端語言吐出,而開發模式下(例如webpack-dev-server)webpack是不會輸出任何文件的(開發環境webpack是將文件放到內存然後在路由層自動serve了),所以這會導致開發環境模板無法引用靜態資源。當然,有一種解決方案就是靜態資源不改變文件名稱,預先寫好路徑,開發環境和生產環境同名(即覆蓋式發布)。

⑷ 前端構建工具是幹嘛的,為什麼要用構建工具

1. 【調試伺服器】首先如果你是一個准備做WEB開發實踐的,不管前端、後台,首先需要了解一兩種伺服器apache,tomcat,nginx啥的,至少能夠配置一個基本的本地服務和修改索引路徑,前端頁面使用http/https協議訪問,而不是本地文件協議(file協議下很多jsAPI都是受限的)。
2. 【調試自動更新】伺服器搭建好了,那麼現在開始調試網頁,然後你修改一點代碼,去瀏覽器裡面F5刷新頁面看看效果,再修改一點代碼,再去瀏覽器裡面F5刷新頁面看看效果...如此循環往復, maybe讓工具幫助你檢測本地文件修改然後實時刷新網頁更靠譜。
3. 【換種方式寫代碼】然後就是寫代碼了,less/sass是不錯的css組織工具,ES6也能讓你的javascript代碼顯得更嚴謹和邏輯清晰,要是能夠在訪問頁面的時候實時獲取css/babel(es6編譯器)編譯結果神馬的應該顯得很cool。
4. 【模塊化】當然在完成邏輯相對復雜的交互功能時候,可能需要你組織非常復雜的代碼功能,這個時候了解一下模塊化的開發思想顯得很有必要require.js事實上更早,也更廣泛一點,sea.js在國內也不錯。
5. 【模板引擎】然後就是對於js生成HTML(或者其他什麼的)的一種包裝方式, 即:js模板引擎(handlebars,jade), 你可以嘗試在開發時候使用這樣的模板工具生成自己想要的HTML文檔什麼的,也是一種不錯的體驗,這個就像你用less寫css代碼一樣,或者說用php,jsp這樣的服務端語言工具生成實時HTML頁面。
6. 【代理調試】有的時候你開發的東西並不只是前端代碼,牽扯到跟服務端應用之間的數據交互,難免需要使用ajax,ajax這貨基於安全考慮是不允許跨域的,因此可能需要通過代理的方式實現數據調試這樣的工具也有不少,nginx伺服器是其中的佼佼者。
7. 【資源合並優化】OK, 如果到完成開發階段,你需要提交自己開發的代碼到線上伺服器了,在提交之前,你需要考慮將開發的資源進行最優化(合並,壓縮神馬的), js方面有uglify,css有cssmin神馬的,圖片壓縮還可能根據不同的類型進行不同程度和配置的壓縮,這些事情交給別個工具處理顯得很有必要,要是能夠一鍵處理那簡直了, 網路的fis,業內最流行的grunt.js、gulp.js神馬的,事實上它們在配置化編譯LESS/Coffee這類工作在自己的流程中也很在行。
8. 【Combo】使用非同步模塊化開發帶來的弊端就是對於大量零碎依賴文件需要分別開辟多個http鏈接去獲取,這可不是一個好現象,要知道單個瀏覽器單域名並發獲取資源的數量是很有限的, 因此例如KISSY就支持了簡單配置一個combo參數來組織一個獲取nginx的 http-concat格式資源的路徑,當然這樣的動態合並模式也適用於普通的資源請求合並。
9.【資源緩存和更新】 CDN 能夠確保你已經發布到伺服器上的資源以最快的響應時間到達瀏覽器,但是帶來的問題是,你的代碼更新,CDN則傻乎乎的不理你,除非你在使用的地方告訴它需要更新了( 時間戳、MD5文件名啥的 )。
事實上,我覺著凡是重復進行的工作總有可以程序和代碼可以替你完成的部分,前端開發中這種事情尤其多,工具啥樣的自己去定義才最合適自己,而nodejs的出現使得前端自己可以方便的開發這類東西(上面的less、coffee、uglify、gruntjs、fis、gulp這些個單詞可以說:都依賴nodejs)。

⑸ 什麼是構建工具

構建工具就是用來讓我們不再做機械重復的事情,解放我們的雙手的。構建工具有許多,再不同的領域都會設計到 ,比如現在的前端自動化構建工具等等

⑹ Vite入門教程-下一代前端開發與構建工具

直接點說,現市面上的構建工具太慢了(webpack 、 Rollup 和、 Parcel等),Vite直接利用瀏覽器原生的 ES模塊使構建速度更快

使用 NPM:

使用 Yarn:

然後按照提示操作即可!

你還可以通過附加的命令行選項直接指定項目名稱和你想要使用的模板。例如,要構建一個 Vite + Vue 項目,運行:

在安裝了 Vite 的項目中,可以在 npm scripts 中使用 vite 可執行文件,或者直接使用 npx vite 運行它。下面是通過腳手架創建的 Vite 項目中默認的 npm scripts:

可以指定額外的命令行選項,如 --port 或 --https。運行 npx vite --help 獲得完整的命令行選項列表。

當以命令行方式運行 vite 時,Vite 會自動解析 項目根目錄 下名為 vite.config.js 的文件。

最基礎的配置文件是這樣的:

注意:即使項目沒有在 package.json 中開啟 type: "mole",Vite 也支持在配置文件中使用 ESM 語法。這種情況下,配置文件會在被載入前自動進行預處理。

你可以顯式地通過 --config 命令行選項指定一個配置文件(相對於 cwd 路徑進行解析)

因為 Vite 本身附帶 Typescript 類型,所以你可以通過 IDE 和 jsdoc 的配合來實現智能提示:

另外你可以使用 defineConfig 工具函數,這樣不用 jsdoc 註解也可以獲取類型提示:

Vite 也直接支持 TS 配置文件。你可以在 vite.config.ts 中使用 defineConfig 工具函數。

如果配置文件需要基於(dev/serve 或 build)命令或者不同的 模式 來決定選項,則可以選擇導出這樣一個函數:

需要注意的是,在 Vite 的 API 中,在開發環境下 command 的值為 serve(在 CLI 中, vite dev 和 vite serve 是 vite 的別名),而在生產環境下為 build(vite build)。

如果配置需要調用一個非同步函數,也可以轉而導出一個非同步函數:

覺得效果不錯的請幫忙加個關注點個贊,經常分享前端實用開發技巧

⑺ 常見的前端構建,打包工具有哪些

事實上前端構建過程一般都是建立在前後分離基礎上的,你要想讓自己的構建過程清晰、簡單和方便,請首先將自己的項目前後實現分離。當然這個有難度,所以你的這個場景並不是非常適合gruntjs通常的構建模式。 對應問題講完,再給你一些建議。

⑻ Web前端開發需要哪些工具

前端開發中需要掌握最基礎的技能就是HTML、CSS,JavaScript。前端的開發中,在頁面的布局時, HTML將元素進行定義,CSS對展示的元素進行定位,再通過JavaScript實現相應的效果和交互,在進行開發前,需要對這些概念弄清楚,才能進行合理的開發。

在網頁建設的過程中,為了避免代碼的繁瑣雜亂,更高效快速地完成任務,就會使用到一些有代碼高亮提示和語法提示等便捷功能的前端開發工具。

1,Dreamweaver:中文名「夢想編織者」。是集網頁製作和管理網站於一身的所見即所得網頁代碼編輯器。它可以使用所見即所得的介面,亦有HTML編輯的功能,藉助經過簡化的智能編碼引擎,輕松地創建、編碼和管理動態網站。訪問代碼提示,即可快速了解 HTML、CSS 和其他Web 標准。 使用視覺輔助功能減少錯誤並提高網站開發速度。

2,Sublime:Sublime Text 是一個代碼編輯器,也是HTML和散文先進的文本編輯器。Sublime Text 的主要功能包括:拼寫檢查,書簽,完整的 Python API , Goto 功能,即時項目切換,多選擇,多窗口等等。

3,HBuilder:是DCloud,推出的一款支持HTML5的Web開發IDE。 HBuilder的編寫用到了Java、C、Web和Ruby。HBuilder本身主體是由Java編寫。

有了工具,接下來還得靠我們人來操作。你必須熟悉三種語言,把這些概念弄明白,才能開發出好的作品。

⑼ 前端構建工具是什麼

前端構建工具是開發軟體一種比較專業性的說法,比如像微軟的vs之類的,但是這種工具都不是簡單的,想要學好的話還是不容易的。