如何用webpack實現自動化的前端構建工作流
1.首先 git clone? ?一份到本地
2.然后 npm install && npm run start
3. *打開瀏覽器,運行
4.接下來看看目錄結構:
5.解析一下這些目錄的用途:
|- ?dist下面存放發布的js、css 文件 (自動生成)
|- node_modules 下面是npm安裝的包文件 (自動創建)
|- src 存放具體的業務代碼
|- task 存放webpack的配置代碼
|- task
|- webpack.api.conf.js 用于webpack的api方式的配置文件 server.js用到
|- webpack.dev.conf.js 用于CLI方式使用webpack 的配置
|- webpack.prod.conf.js 用于生產環境打包輸出的配置
|- .postcssrc.js ?post-loader的插件配置文件,由于后面用了postcss.config.js所以重命名了這個
|- .babelrc babel的配置文件,為了解析es6語法
|- .gitignore git的配置,指出要不參與版本控制的文件及文件夾
|- .package.json 包配置文件
|- postcss.config.js ?post-loader配置
|- README.md github.com自動創建的項目說明文件
|- server.js ?本地開發調式用的web服務器
需要重點掌握的是package.json 其次是server.js 和 task相關的配置內容
先看看package.json:
{
"name": "shop",
"version": "1.0.0",
"": "webapp frontend shop",
"main": "index.js",
"scripts": {
"start": "node server.js",
"dev": "webpack-dev-server --config ./task/webpack.dev.conf.js",
"build": "webpack --config ./task/webpack.prod.conf.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [
"mall",
"shop"
],
"author": "frog",
"": " "MIT",
"": {
"babel-core": "^6.25.0",
"babel-loader": "^7.1.1",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-preset-env": "^1.5.2",
"css-loader": "^0.28.4",
"express": "^4.15.3",
"extract-text-webpack-plugin": "^2.1.2",
"html-webpack-plugin": "^2.29.0",
"postcss-loader": "^2.0.6",
"style-loader": "^0.18.2",
"webpack": "^2.6.1",
"webpack-dev-": "^1.11.0",
"webpack-dev-server": "^2.5.0",
"webpack-hot-": "^2.18.0"
},
"": {
"babel-plugin-transform-runtime": "^6.15.0"
}
}
這個文件其實就是一個json對象,里邊重點掌?scripts 的用法。比如start:node server.js ?對應 npm run start (或 npm start) ?這條命令就相當于是在node環境下運行了server.js
那么server.js(文件名可以自已定)里邊保存了一些什么內容?
var express = require("express");
var webpack = require("webpack");
var path = require('path')
var app = express();
var = require("./task/webpack.api.conf.js");
var compiler = webpack();
var = require('webpack-dev-')(compiler, {
: .output.path,
: .output.,
//hot: true,
//stats: { colors: true },
quiet: true
})
var = require('webpack-hot-')(compiler, {
//lazy: true,
//path:'/hmr',
log: () => {}
})
app.use(express.static('./dist'));
app.use()
app.use()
app.listen(4000, function () {
console.log("Listening on port 4000!");
});
其實就是使用了express來搭建一個小型的開發服務器。然后引用webpack-dev-和webpack-hot-兩個中間件,結合webpack.api.conf.js的配置,實現打包和熱加載src下面的代碼。由于這里涉及到express的知識,不打算涉及全棧的前端只需了解一下即可,因為后面還有一個封裝好的工具可以替代這些工作--webpack-dev-server
所以我在script中添加了一個dev:webpack-dev-server 的命令,這全完是為了方便學習這兩種方式的應用,實際上任選其中一種就好了,這一種可能會感覺更簡單,因為它是*種方式的封裝,但是要深入的了解,還是建議看看*種方式,Vue-cli也是采用的*方式,因為它可供開發者自由支配的空間更大。*需要注意的是,如果使用webpack-dev-server的話,目前還不能用webpack3.0+。
接下來運行npm run build ?看看,dist目錄下是不是多了一些文件?這就是將來可以直接發布到線上的代碼了。
到這里,打包,發布 都介紹完了,下面簡單演示一下熱替換(也就是所謂的無刷新替換效果)。為了演示方便,我在src下放了一些代碼.
當我們打開 world 還有一個時間毫秒數,加這個毫數的目的是為了演示,如果頁面刷新了,數字會改變。
然后修改style.css中的內容,比如把字體顏色改成紅色,瀏覽器上的字體顏色也相應的變化了,而數字沒有發生改變。如果手動刷新的話,可以看到數字是會變化的。
這不僅會節省時間,而且對于要保存頁面狀態(比如某按鈕選中)的情況非常有用。當我們修改hello.es6的時候,頁面變成了自動刷新,這是因為我沒有使用js的熱替換加載器。
如果對html的修改,也想要自動刷新的話,需要用到插件,發出相應的事件。比如vue-cli中的方式:
// force page reload when html-webpack-plugin template changes
compiler.plugin('', function () {
.plugin('html-webpack-plugin-after-emit', function (data, cb) {
.publish({ action: 'reload' })
cb()
})
})
這里只是發出一個通知:action:'reload',要使頁面自動重新加載,還需要有一個接收通知的代碼:
比如在入口中加入:
/* eslint-disable */
require('-polyfill')
var hotClient = require('webpack-hot-/client?noInfo=true&reload=true')
hotClient.subscribe(function (event) {
if (event.action === 'reload') {
window.location.reload()
}
})
這個地方比較深奧,沒有弄明白也沒關系,有其它方式同樣可以實現。比如webpack-dev-server 內部已經自動完成了對不支持熱替換的加載器,自動降為刷新。
這也是為什么在開發環境下使用了extract-text-webpack-plugin(提取css的插件)后,樣式的熱替換變成了刷新效果的原因。
前端自動化部署解決方案
對象存儲服務都有提供對應的控制臺管理桶,同時也提供響應的API供后端業務調用。aws-s3官方提供了命令行終端操作庫可以方便在命令行發布我們的靜態資源:
我們可以這樣發布:
騰訊的cos可以使用很輕量第三方庫 cos-manager 發布資源:
npm script 類似shell 的 exec,可以幫助你執行多個并行或順序執行的命令,我們可以一次性執行 刪除本地dist資源->打包->發布
參考:
以上發布我們可以這樣寫:
一個命令,提包走人。(雖然走了有點慌...)
持續集成是一種軟件開發實踐,每一次發布源碼都會集成一次,每一次都會自動化的構建,這意味著也可以把上面的發布腳本在服務端跑起來,打包 測試 發布全部交給CI處理,目前主流的工具是 Travis CI ,具體可以參照: 在還沒有前端工程師這種分工如此明確的崗位時,大家所理解的前端工作無非就是制作網頁的人,包括html、css、js等。稍微高級點的可能就是php了,可以讀寫數據庫,可以稱之為動態的網頁。通過近幾年的發展,分工越來越細,在大公司如BAT三家,基本是把前端分開來了,有專門的人寫js,有專門的人寫css。以前一個網頁可以一個人搞定,包括切圖,寫頁面到寫邏輯,無非是幾個資源鏈接拼湊起來。當然邏輯性不強,頁面不重。
最簡單的頁面如下:
hello world
這樣幾個html標簽就能展示成網頁了。順便寫幾個邏輯,填寫幾個表單就差不多了。這就是早期的網頁。
庫
有一次需求你做了一個頁面,然后第二次需求,你領導又讓你做了頁面,只是這次與上次的邏輯都差不多,就改改樣式皮膚,修改圖片等等。這樣你就要從原來的地方拷貝一份代碼過來。如果有一天發現一個bug,你就需要修改兩處地方,這使得你非常的惱火,于是就把公共的邏輯抽取出來,兩個頁面都引用這段代碼,這樣就很好的解決了這個問題。以后有第三個第四個頁面,你也不會擔心了。漸漸的公共的代碼越來越大,又是個獨立的文件,這個文件就成為了一個庫文件了,就像jquery等等。
模塊化
隨著業務的不斷擴大,頁面越來越多,邏輯越來越重,之前你提取出來的庫文件越來越大,功能越來越多。A頁面只引用了其中的一部分函數,B頁面C頁面同樣如此,后來你決定將庫文件拆分成更小的模塊,由各自的功能決定應該在哪個模塊。這樣一來前端開發就此演化為模塊化開發方式。你開發的產品就像搭建積木一樣,將各個模塊組裝在一起。
網頁優化
好了,現在你的工程很龐大了,文件數量新增了非常的多,JS模塊也很多,這時候一個頁面也能加載了上十個js文件或者好幾個樣式文件。用戶訪問你的網頁的時候需要把這些資源從服務器下載下來,所以理論上來說,想要加快你的網站,比必須減少下載的時間。可以從下載的數量和下載的大小出發,在不做大改變的前提下就是減少HTTP請求數以及壓縮文件大小。雅虎的網頁優化十四條軍規中很大一部分是針對這種情況進行優化,如:
1、合并請求
2、使用雪碧圖
3、壓縮js、css代碼(除去空格,混淆等等)
4、延遲加載
在PC時代,這些問題可能不是那么尖銳。移動互聯網的興起,對網頁速度提出了更高的要求,因為網速相對比較慢。也有新的優化措施出現,比如緩存js文件等。可是要做到這些,并不是很容易。假如你的頁面引入十個JS文件,這樣發布出去顯然是不好的,所以你要手動合并,將十個JS文件合并成一個,或者幾個。然后還要將合并后的文件進行壓縮。發出去之后產品經理發現有個小問題需要優化一下,這時候你又要重復剛才的工作。如果這樣的事情發生三次,或者更多次,你會變得惱火。當然這只是令你惱火的一點點因素而已,更多的還有合并雪碧圖等等。
經歷過幾次痛苦之后,你會發現性能優化與工程本身之前存在一些矛盾的地方。就是在優雅的開發的同時,兼顧性能方面的考慮實在難以做到。這時自動化工具太有必要了,將開發與發布隔離開來。按照優化的準則,利用構建工具,在發布的時候輕松一鍵搞定,這將是最理想化的作業方式。
一些構建工具
nodejs的出現,給前端開發帶來了一些改變。在沒有任何語言障礙的情況下,前端同學可以轉為后臺開發,nodejs帶來另外的一個福音便是構建工具。之前的壓縮合并工具大多是由java編寫的,像雅虎的yui ,但對沒有java基礎的前端開發來說,至少要走不少彎路。然后最近一兩年比較火的是國外的grunt和gulp,以及國內的FIS。相比而言,國外總是走在前頭,在探索更好的開發方式,做出了很多探索。
grunt
之前在鳥廠的時候,在組內也嘗試推廣過模塊化的開發方式,主要是用seajs模塊加載器,關于這個的好處我這里就不展開說明了。這種方式從11年開始到現在基本已經得到了認可,或者說是未來的趨勢, 6已經將模塊化加入了規范。等到瀏覽器支持應該是幾年之后的事情。這種模式主要是參考了nodejs,將其思想運用到瀏覽器上。seajs模塊化的詬病之處便是網絡請求,上線前面臨的一個問題就是模塊太多,有十幾個文件,需要合并和壓縮,而且還不能簡單的將文件合并在一起。有一套他自己的規則。
在開發的時候,一個模塊對應一個文件,如下:
// a.js
define(function(require, export, module){
require('./b')
// xxxxx
});
//b.js
define(function(require, export, module){
// xxxxx
})
如果上線前簡單的將這兩個文件合并在一起,那么a模塊是不能找到b模塊,因此這樣的做法是行不通。一個規則是根據文件的路徑,給每個模塊加上一個唯的id,id的值就是該模塊的路徑:
// a.js
define('a', function(require, export, module){
require('./b')
// xxxxx
});
//b.js
define('b', function(require, export, module){
// xxxxx
})
所以在自動化的過程中,需要提取模塊的*ID,然后再進行合并。
grunt的插件很多,也非常的成熟,能夠滿足各式各樣的需求。作為新手,我是琢磨了大概半個月的時間才大概了解了其配置文件的意思,但也只是知道用,不明白個所以然。grunt的運作方式就是根據配置文件加載相應的插件,完成相應的任務(task)。當時中文資料比較少,英文也比較晦澀,尤其是配置文件中各配置項的意思不太明白。而當文件多起來了,構建的效率明顯跟不上。加上組內也不太重視,所以就沒怎么去折騰了。轉去鵝廠之后,grunt就無疾而終了。
gulp
沒有在實戰項目中運用過,暫不說明
組內的構建工具
剛來到鵝廠時,也有自己的一套構建工具,比較單一,項目不大。主要是將上文提到的seajs所帶來的文件解決掉,提取模塊ID,合并之。隨著業務的發展,越來越不滿足實際的需求,后來索性放棄了它,轉而投向百度的FIS。
FIS構建工具
放棄之前的構建工具是因為一個尖銳的問題引起的,就是在發布的時候,有一段時間將會引起外網報錯,就是頁面已經出去,js文件卻還是舊的,即使你在文件后面加上了查詢參數也不太起作用。加上瀏覽器和CDN本身的緩存,這個問題一時之間找不到好的解決方案,*的辦法就是采用新的文件,文件加上自身的hash值作為文件名。這樣一來就瞄準了百度的FIS,它能夠簡單的實現我們所需要的功能。
核心思想是文件的定位,也就是在開發測試的階段并不需要將文件hash,只需要在上線的那一刻來做這步。找到原有文件的依賴,將其替換為新的文件名。
理想都很美好,但現實真的很殘酷。FIS上手相對于grunt是要簡單些,但其一點也不簡單。需要理解整體的思想才能去實施,而且小白用戶基本不會使用,除非是一些簡單的合并需求。但復雜的業務場景FIS是滿足不了的。包括前面提到的模塊ID的提取,seajs模塊文件的合并等都需要進行二次開發才能夠做到。
很多頁面是嵌入到APP內部的,APP本身也可以做一次緩存,根據特定的文件名規進行緩存,徹底消滅了304請求,如果每次都是新文件,在服務器端也可以配置更長久的緩存期,所以這里也需要定制開發。
FIS最值得詬病的地方就是全局構建,這一點不僅使得構建速度快不起來,而且生成的新文件特別多,導致發布的時候去挑選文件。在多人協作開發的時候,會產生沖突,發布的過程極其的痛苦,不知道百度內部的人是怎么使用的。望著文件夾滿是hash的文件名,瞬間就奔潰了。這是小組內部使用FIS后,血的教訓。
后來決定大刀闊斧的對FIS進行改造。在構建的時候只生成相關的資源文件,核心是找到該文件所依賴的所有的資源文件。當然還是全局構建,只是在生成文件的時候不生成其他不相關的。
這樣發布工作變得非常輕松,一目了然。然后配合現在的發布工具,基本上整個開發發布流程也比較順暢了。那天小組會議討論,構建工具的理想目標是什么,這個問題我也沒有細想過,總之就是要從重復的勞動中解放出來,把時間花在值得的地方。或許可以采用一鍵發布,這可能就是理想,也是后期可以考慮再優化的地方。
現在組內所采用的構建工具,已經和FIS本身有很大的差別了。進行了很多地方的改造,后面有機會進行整體的開發發布流程分享,以及我的一些構建思路。
iamaddy
關注
1
0
0
專欄目錄
4款前端自動化構建工具的介紹與對比.zip_java自動化框架
01-07
4款前端自動化構建工具的介紹與對比.zip 大家都知道webpack是當人不讓的前端自動化構建工具,但是除了它還有其它常用的前端打包工具存在,現在我們來比較4款
前端自動化構建工具(Grunt,、Gulp、 Webpack)
01-02
使用構建工具去對 JS、CSS、HTML、LESS、IMG 等進行合并壓縮構建到*實現自動化構建項目。是前端工程師必備的技能之一。 本套視頻主要講解當前開發中*的三種自動化構建工具: Grunt, Gulp, webpack。從理解什么是構建工具,為什么要用構建工具,到如何去使用構建工具。 學習本套視頻之前 建議先學習 JS 模塊化。
如何實現自動化前端開發?
CSDN資訊
7051
IDE不僅是文本編輯器,還是編譯器、生成器、調試器和集成器。 作者 |Nicolus Rotich 譯者 |彎月,責編 | 郭芮 出品 | CSDN(ID:CSDNnews) 以下為譯文: 每一行代碼都可以表示為字符串變量,無論代碼本身執行了哪些操作。 這就是我們使用文本文件(即集成開發環境,IDE)向計算機發布指令的根本原因,我知道你一定在想:文本編輯器的名字也太高級了吧。...
前端自動化發布實戰總結
weixin_34418883的博客
163
為什么要做 今年4月份,開始自己的第二份工作,習慣了老東家如絲般的發布體驗,一下子感覺來到了“原始社會”。 首先這是一篇長文,主要介紹自己在做自動發布這個過程的一些思考。 引用玉伯的Web研發模式演變來說,現在我們處于 - Web1.0時代: 前后端代碼耦合 java環境對前端過于復雜 缺乏工具和規范,代碼難維護 內嵌代碼:html內嵌js,j...
前端項目自動化部署
*發布
@SCY
392
本文主要內容為三個方面: 一、使用Git倉庫來管理項目 二、如何使用云服務器 三、使用Jenkins進行自動化部署
如何實現Web前端自動化?讓這些工具幫助你
的博客
1569
隨著前端技術的發展,前端開發從靜態網頁的開發到復雜的前后端交互再到基于node.js的全棧開發,前端需要做的事情越來也多,前端代碼的邏輯和交互效果越來越復雜,越來越不易于管理。模塊化開發和預處理框架把項目分成若干個小模塊,增加了*發布的困難,沒有一個統一的標準,讓前端的項目結構千奇百怪。在新技術不斷涌入的多元化發展模式中,Web前端工程師的工作量也越來越大。前端自動化構建在整個項目開發中越來越重...
前端工程化實戰 - 自動化構建工具
每天進步一點點
496
最典型的運用場景就是在去開發網頁應用時就可以使用: main.scss index.html package.json 安裝 Sass 模塊 安裝完成后,在 node_modules 下有一個 .bin 目錄,這個目錄下有一個 Sass 的命令文件,可以使用指令打開幫助信息 將 Sass 文件轉換成 CSS 使用 或 啟動 實現自動化構建 (1)安裝 browser-sync 模塊,用于啟動一個測試服務器,去運行項目 (2)在 scripts 中添加 serve 命令,通過 br
前端自動化部署
qq_41206257的博客
2689
名詞解釋 集成:在推送或者 merge 代碼后自動進行構建打包 交付:將上一步生成的代碼包發布至測試、生產等環境 需求 在 git 代碼倉庫發生變化后,自動執行打包腳本,并且發布至服務器。 解決的問題 在之前每次開發完畢需要上線之前,需要手動執行 bash 命令打包,并且將打包后的代碼人為的拖動至上傳應用( Pro)。 手動執行構建腳本消耗時間人力 而拖動代碼文件會存在拖拽錯誤,覆蓋之前的其他項目代碼等難以預料的問題 工具選擇 gitlab/github/gitee Jenki
前端自動化介紹
張營的技術博客
1815
文章目錄DevOps介紹前端自動化自動化相關概念問題提出常見現象*實踐 DevOps介紹 相信大家或多或少的聽過這個詞DevOps,而且看起來很高大上,其實這個是敏捷開發的一種執行流程表現,先來一張經典的DevOps流程圖: 具體的流程為: 先是計劃plan,編碼code,然后編譯build,測試test(Dev) 然后發布release,部署deploy,運維operate,監控monitor(Ops) 然后發現問題或有新的需求,就重新計劃plan。。。如此循環 這就是完整的DevOps流程。 下
前端項目自動部署
weixin_29005819的博客
1190
一、實現的最終效果 點擊一下,即可實現 項目打包 文件壓縮(便于上傳到服務器) 連接服務器 備份 上傳打包的文件 解壓 完成部署 二、原理及需要的插件 原理: 執行shell腳本 需要的npm依賴包:archiver(壓縮),ssh2(執行腳本:如連接服務器,解壓等操作) 三、詳細步驟 3.1 安裝包 yarn add archiver ssh2 3.2 引入包和編寫配置文件 const archiver = require('C:\\Users\\\\AppDa
前端自動化測試詳解
的專欄
2405
這篇文章主要向大家介紹前端自動化測試詳解,主要內容包括基礎應用、實用技巧、原理機制等方面,希望對大家有所幫助。 1 前言 文章研究了四個問題:什么是自動化測試、為何要自動化測試、什么項目適合自動化測試、自動化測試具體要怎么作。在尋找這四個問題答案的過程當中,梳理了一套完整的前端自動化測試方案,包括:單元測試、接口測試、功能測試、基準測試。 2 什么是自動化測試 維基百科是這樣定義的html 在軟件測試中,測試自動化(英語:Test )是一種測試方法,使用特定的軟件,去控制測試
Gitlab-ci:從零開始的前端自動化部署
大灰狼的小綿羊哥哥的博客
2669
前言 本文為首發原創,同時轉載至公眾號“全棧前端精選“和“廣發證券金融科技”中 目錄 一.概念介紹 1.1 gitlab-ci && 自動化部署工具的運行機制 1.2 自動化部署給我們帶來的好處 二.知識預備 2.1 gitlab-ci涉及的抽象概念(Runner/PipeLine/Executor/Job ) 2.2 YML文件的基本語法規則 2.3 .gitlab-ci.yml配置的特定關鍵字 三.CI實戰 3.1 編寫一個gitlab-ci的“he
vue前端用服務器上路徑的圖片展示_談談前端性能自動化
weixin_39968640的博客
1445
前述:前段時間出了性能分析的需求,需要對前端頁面性能做一套自動化測試工具。領導都發話了,那咱說干就干。花了一周時間去找資料以及匹配優秀并且合適的開源插件。花了一個月的時間(斷斷續續,需求也要做的~)完成了這個工具的建設和開發。目前也搭建了一套平臺來支撐這樣的工具使用。前端用的VUE,后端用的node(由于本人較熟悉前端),數據庫用的是mangoDB。好了,話不多說,上才藝~設計背景 & 前...
實現前端項目自動化部署(webpack+nodejs)
winne雪
2097
前言: 一般來說,我們前端是不需要關心部署的事情的,只需要把打包后的文件直接丟給后臺去部署就可以了。但是呢,如果頻繁修改一點東西就要叫后臺進行部署,這樣后臺會很煩(畢竟人家還有其他工作嘛),我們也會很不好意思。 或許有些公司會給前端配置可視化操作服務器文件的軟件(FTP客戶端),這時我們就可以打包后自己到服務器上部署了,如果不同環境需要部署到不同服務器,此時我們又需要區分打包再手動上傳到服務器上。 這時我們就會想,有沒有直接一句命令就能自動化部署到不同服務器上,根本不需要打開軟件來手動上傳的??? 答案:必
前端項目自動化部署——超詳細教程(Jenkins、Github Actions)
的博客
1374
參考資料 Docker 入門教程
常用的前端自動化構建工具gulp/grunt/fis --簡介
杜杜的博客
235
常用的前端自動化構建工具 之前我們自動化構建將入門級別使用的 NPM Scripts自動化構建工具對于相對復雜的項目構建會比較吃力,那么我們會了解 Gulp Grunt fIS 用法基本相同:都是通過一些簡單的代碼,組織一些插件的使用,然后就可以用工具代替我們一些重復的工作,增強開發效率。 Grunt 是基于內磁盤實現的 最早的自動化構建工具 Grunt(點擊可進入官網查看) 優點: 它的插件幾乎可以幫助我們完成任何我們想要做的事情, 缺點: 由于工作過程是基于臨時文件去實現的,所以構建速度較慢。 下
前端自動化部署項目到服務器 -- 一行命令搞定,摒棄傳統的手工部署 npm run build
一個來自外太空的游客
2353
傳統的前端代碼手工部署流程如下: 傳統的手工部署需要經歷: 1.打包,本地運行npm run build打包生成dist文件夾。 2.ssh連接服務器,切換路徑到web對應目錄下。 3.上傳代碼到web目錄,一般通過xshell或者xftp完成。 傳統的手工部署存在以下缺點: 1.每次都需要打開xshell軟件與服務器建立連接。 2.當負責多個項目且每個項目都具有測試環境和線上環境時,容易引起部署錯誤。 (個人之前非常悲劇地遇到過一次,由于同時負責四個項目,八個環境。一天同時可能修改多個項目,
“相關推薦”對你有幫助么?
非常沒幫助
沒幫助
一般
有幫助
非常有幫助
??2022 CSDN 皮膚主題:大白 設計師:CSDN官方博客 返回首頁
關于我們
招賢納士
商務合作
尋求報道
400-660-0108
kefu@csdn.net
在線客服
工作時間 8:30-22:00
公安備案號
京ICP備19004658號
京網文〔2021〕1039-165號
經營性網站備案信息
北京互聯網違法和不良信息舉報中心
家長監護
網絡110報警服務
*互聯網舉報中心
Chrome商店下載
賬號管理規范
版權與免責聲明
版權申訴
出版物許可證
營業執照
?1999-2023北京創新樂知網絡技術有限公司
iamaddy
碼齡8年
暫無認證
3
原創
42萬+
周排名
115萬+
總排名
8683
訪問
等級
122
積分
2
粉絲
3
獲贊
0
評論
1
收藏
私信
關注
熱門文章
聊聊前端自動化 3903
扒一扒前端構建工具FIS的內幕 3474
web前端性能優化–緩存 1306
分類專欄
3篇
技術
3篇
您愿意向朋友推薦“博客詳情頁”嗎?
強烈不推薦
不推薦
一般般
推薦
強烈推薦
*文章
扒一扒前端構建工具FIS的內幕
web前端性能優化–緩存
2015年1篇2014年2篇
舉報
————————————————
版權聲明:本文為CSDN博主「iamaddy」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接: entry 配置的一個入口文件(JS文件),然后在解析過程中,發現其他的模塊,如scss等文件,再調用配置的loader或者插件對相關文件進行解析處理。
兩者區別
雖然Gulp 和 Webpack都是前端自動化構建工具,但看2者的定位就知道不是對等的。Gulp嚴格上講,模塊化不是他強調的東西,旨在規范前端開發流程。Webpack更明顯的強調模塊化開發,而那些文件壓縮合并、預處理等功能,不過是他附帶的功能。
以上就是介紹的前端構建工具 Gulp 和 Webpack,以及兩者之間的區別。如今互聯網發展迅速,Web前端人員也應該與時俱進的不斷學習。
Canvas開發的前端頁面自動化實現求助
現在的前端開發已經不再僅僅只是靜態網頁的開發了,日新月異的前端技術已經讓前端代碼的邏輯和交互效果越來越復雜,更加的不易于管理,模塊化開發和預處理框架把項目分成若干個小模塊,增加了*發布的困難,沒有一個統一的標準,讓前端的項目結構千奇百怪。前端自動化構建在整個項目開發中越來越重要。
我們首先來回想一下之前我們是如何來開始做一個項目的。
① 首先要確定這個項目要使用什么樣的技術來實現,然后開始規劃我們的項目目錄,接著就要往項目增加第三方庫依賴,比如:
拷貝 CSS庫(Yui Reset | bootstrap)JS庫(Requiet.js | Seajs | jQuery | jQuery插件 ) 進相應目錄(拷貝 N個文件,花費N分鐘)
② 然后,進行編碼
編輯器編碼 => 切換到瀏覽器F5 => 編輯器編碼 => 切換到瀏覽器F5 => 編輯器編碼 => 切換到瀏覽器F5 => 編輯器編碼 => 切換到瀏覽器F5 …………
③ 編碼完成,進行語法檢查,文件合并和壓縮
HTML去掉注析、換行符 - HtmlMin
CSS文件壓縮合并 – CssMinify
JS代碼風格檢查 – JsHint
JS代碼壓縮 – Uglyfy
image壓縮 - imagemin
整個過程都在重復無用繁瑣的工具...
漸漸的,一些自動化構建工具出現了,人們開始使用例如Bower、Gulp、Grunt、node、yeoman等等工具來構建一個本地的開發環境。自動化構建已經成了前端開發的趨勢,所以學好自動化構建也就是為自己的開發打下了良好的基礎。
2021年入門Web前端需要學習哪些知識
今天小編要跟大家分享的文章是關于2021年入門web前端需要學習哪些知識?正準備學習web前端的小伙伴們來和小編一起看一看吧,希望本篇文章能夠對大家有所幫助。一、HTML、CSS基礎、語法基礎。學完基礎后,可以仿照電商網站(例如京東、小米)做首頁的布局。
二、語法進階。包括:作用域和閉包、this和對象原型等。相信我,JS語法,永遠是面試中最重要的部分。
三、jQuery、Ajax等。jQuery沒有過時,它仍然是前端基礎的一部分。
四、ES6語法。這部分屬于JS新增的語法,面試必問。其中,關于promise、async等內容要尤其關注。
五、HTML5和CSS3。要熟悉其中的新特性。
六、canvas。面試時,有的公司不一定會問canvas,靠運氣。如果時間不夠,這部分的內容可以先不學。但如果你會,絕對屬于加分項。
七、移動Web開發、Bootstrap等。要注意移動開發中的適配和兼容性問題。
八、前端框架:Vue.js和React。這兩個框架至少要會一個。入門時,建議先學Vue.js,上手相對容易。但無論如何,同時掌握Vue和
React才是合格的前端同學。
九、Node.js。屬于加分項,如果時間不夠,可以先不學,但至少要知道node環境的配置。
十、自動化工具:構建工具Webpack、構建工具gulp、CSS預處理器Sass等。注意,Sass比Less用得多,gulp比
grunt用得多。
十一、前端綜合:HTTP協議、跨域通信、安全問題(CSRF、XSS)、瀏覽器渲染機制、異步和單線程、頁面性能優化、防抖動()和節流閥(Throtting)、lazyload、前端錯誤監控、虛擬DOM等。
十二、編輯器相關。是每個學前端的人都要用到的編輯器。另外,前端常見的IDE有兩個:WebStorm和Visual
。WebStorm什么都好,可就是太卡頓;VSCode就相對輕量很多。個人總結一下:用VSCode的人越來越多,用
WebStorm的人越來越少。
十三、(簡稱TS)。ES是JS的標準,TS是JS的超集。TS屬于進階內容,建議把上面的基礎掌握之后,再學TS。
以上就是小編今天為大家分享的關于2021年入門web前端需要學習哪些知識的文章,希望本篇文章能夠對想要了解web前端工作的小伙伴們有所幫助,想要了解更多web前端知識記得關注北大青鳥web培訓官網。*祝愿小伙伴們工作順利,成為一名優秀的web前端工程師。
前端開發應該學什么?看完這篇不在迷茫
想要成為一個好的前端程序員,需要掌握的技術還是比較多的,比如HTML5開發、、Veu.js框架開發等等。
前端就是展現給用戶瀏覽的部分。我們通常說的前端,其實是指前端開發,也就是創建PC端或移動端等前端界面給用戶的過程,通過HTML,CSS及以及衍生出來的各種技術、框架、解決方案,來實現互聯網產品的用戶界面交互。
學習的內容包括:
①計算機基礎以及PS基礎
②前端開發基礎(HTML5開發、基礎到高級、jQuery網頁特效、Bootstrap框架)
③移動開發
④前端高級開發(、Veu.js框架開發、webpack、前端頁面優化、React框架開發、AngularJS 2.0框架開發等)
⑤小程序開發
⑥全棧開發(MySQL數據庫、Python編程語言、Django框架等)
⑦就業拓展(網站SEO與前端安全技術)
互聯網行業目前還是最熱門的行業之一,學習IT技能之后足夠優秀是有機會進入騰訊、阿里、網易等互聯網大廠高薪就業的,發展前景非常好,普通人也可以學習。
想要系統學習,你可以考察對比一下開設有相關專業的熱門學校,好的學校擁有根據當下企業需求自主研發課程的能力,能夠在校期間取得大專或本科學歷,中博軟件、南京課工場、南京北大青鳥等開設相關專業的學校都是不錯的,建議實地考察對比一下。
祝你學有所成,望采納。
web前端學習路線?
點擊下方“小愛心”,選擇“關注”
管她前浪,還是后浪?
能浪的浪,才是好浪!
關注我,每天讓你掉憶點點頭發。。。
前端學習路線:
網頁鏈接
2021年全新前端學習路線圖分享給大家!
學習是一個循序漸進的過程,是一件非常難得堅持的事情。如果真的想學習前端開發,一定要下定決心!
我這里分享給你的前端學習路線圖,希望對你有幫助,以下為2021年更新版本,
@尚學堂前端在2021年更新前端開發學習路線圖,把2021年新技術,新課程囊括其中,
也寫了技術叔,每個技術需要學習的技術,跟著學完你就是中高級程序員!
前端學習框架
一、web前端基礎
HTML+CSS基礎是前端中級程序員的起點,是幫助你從小白到懂得編程的必經之路。
在前端基礎板塊中有三塊構成了web世界,這是大家眾所周知的事情。分別是:HTML、CSS、。而每一部分都是要很多的知識積累才能運用的游刃有余。
HTML具有更好的語義特性、本地存儲特性、設備兼容特性、網頁多媒體特性、css3特性等。它是web的新一代開發標準。只不過h大提升了對移動端的的支持能力。現在有些桌面瀏覽器對html5的支持還不健全,有些新特性不見得能生效(現代瀏覽器支持度較高),而移動設備上(android、ios)的瀏覽器(或webview)大都是webkit內核,對html5的支持度較高,所以一般在移動設備上使用不會出太大的兼容性問題。
剛開始是有Netscape公司開發出來的,命名是為了跟上java這股熱風(但和java毫無關系)。隨后微軟進入瀏覽器市場,由此催生了的標準化,而這個標準名稱就叫,從此正式成為一門語言。實際上,是的超集,可以認為是和一樣的存在。他們都實現了的標準。我們現在所說的標準規范都指規范,當前流行的最著名的就是ES5、ES6等標準。
配套學習視頻:
網頁鏈接
二、JavaSript
是Web的編程語言。
所有的現代的HTML頁面都使用。
非常容易學。
主要學習內容:基礎、函數、數組與對象、DOM、實踐實例、
json解析、面向對象、原型與原型鏈和bootstrap。
配套視頻下載鏈接:
網頁鏈接
三、jQuery
jQuery 是一個 庫。
jQuery 極大地簡化了 編程。
主要學習的內用有:jQuery基礎、jQuery常見方法、jQuery節點操作和jQuery實戰聯系
配套視頻下載鏈接:
網頁鏈接
四、Ajax
AJAX=Asynchron and XML (異步的和XML)。
ALAX不是新的編程語言,而是一種使用現有標準的新方法。
AJAX*的優點是在不重新加載整個頁面的情況下,可以與服務器交換數據并更新部分網頁
容。
AJAX不需要任何瀏覽器插件,但需要用戶允許在瀏覽器上執行。
AJAX應用
運用XHTML+CSS來表達資訊;
運用操作DOM(Document Object Model)來執行動態效果;
運用XML和XSLT操作資料;
運用或新的Fetch API與網頁服務器進行異步資料交換;
注意:AJAX與Flash、和java Apple等RIA技術是由區分的。
配套下載鏈接:
網頁鏈接
五、H5新特性
HTMT就是你跟瀏覽器下達命令的語言。比如要把一篇文章顯示在瀏覽器上,文章既有圖片又有文字,你要告訴它那些事文字,哪些是圖片,并且分別都放在哪個地方,需要用什么樣式(顏色、大小、對齊。。。。),我們把瀏覽器顯示的頁面叫做網頁。
主要內容:常用框架、移動端與REM、canvas元素和H5新特性
配套視頻下載鏈接:
網頁鏈接
六、angularJS
AngularJS 是一個? 框架。它可通過
學員評價ASK list
-
楊**評價:南京博為峰IT的推薦我現在已經上班了,我對現在的工作很滿意。非常感激曾經教過我的老師和幫助過我的班主任,他們幫助我這個小白,拚了java界的大門,讓我見到代碼*的繽紛多彩。手機號碼: 152****5497 評價時間: 2025-06-03
-
劉**評價:我覺的博為峰的師資是非常吸弓我的,老師教學經驗十分的豐富,且教齡時間也是很長的,老師們總是能夠將難點細致化的講解,讓我能夠聽懂。手機號碼: 185****8769 評價時間: 2025-06-03
-
先**評價:室內表現在博為峰教育學的,效果好的很,只用了不到幾周的時間就掌握了,效率高手機號碼: 136****4552 評價時間: 2025-06-03
-
王**評價:我是今年暑期以后來南京博為峰教育報名學習的UI設計,課程結束以后,博為峰教育的老師還幫我推薦了工作,謝謝博為峰的老師。手機號碼: 135****4788 評價時間: 2025-06-03
-
小**評價:南京博為峰課程非常的多,能夠讓我去選擇,且這里的老師也會結合我的學習需求,推薦適合我的課程,讓自己選擇,教學服務真的很好。手機號碼: 177****1463 評價時間: 2025-06-03
-
曾**評價:我是零基礎,原以為博為峰的課程會不適合我,沒想到這里還有零基礎課程能夠幫助我進行掃盲,而且在學習安排上,也是科學合理,學起來沒有那么大的壓勵。手機號碼: 182****5636 評價時間: 2025-06-03
-
李**評價:各位好,我是59期建筑動畫全科班的林熙朋,很高興在這里學習,認識了大家很高興手機號碼: 178****9800 評價時間: 2025-06-03
-
夏**評價:很喜歡江蘇博為峰計算機培訓中心的學習環境,全蘋果機教學,馱上哦!在這里,遇到了很多志同道合的小伙伴,大家相互鼓勵、相互幫助,讓我順利結業,順利找到心儀的工作,棒棒的!手機號碼: 138****3445 評價時間: 2025-06-03
-
女**評價:想學手繪,朋友推薦的博為峰,不錯,老師們都很厲害,很專業手機號碼: 186****6561 評價時間: 2025-06-03
-
白**評價:在沒來博為峰教育學習之前,我對IT這方面可以說是十竅通了九竅,- 竅不通。從去年11月中旬到今年學習的過程,讓我有了很多進步和突破,感謝博為峰校區的每一位老師!手機號碼: 131****9539 評價時間: 2025-06-03
本文由 南京博為峰教育 整理發布。更多培訓課程,學習資訊,課程優惠,課程開班,學校地址等學校信息,可以留下你的聯系方式,讓課程老師跟你詳細解答:
咨詢電話:15757356768