本質上,webpack 是一個現代 JavaScript 應用程序的靜態模塊打包器(module bundler)。當 webpack 處理應用程序時,它會遞歸地構建一個依賴關係圖(dependency graph),其中包含應用程序需要的每個模塊,然後將所有這些模塊打包成一個或多個 bundle。
webpack底層是用commonJS語法規範編寫,除此之外,它還支持AMD,CMD,ES6等其它語法規範。
webpack的四個核心概念
- 入口(entry)
- 出口(output)
- loader
- 插件(plugins)
入口
由entry指定,是內部依賴圖的起點,可在webpack.config.js中配置一到多個入口
module.exports{
entry: './app/entry', // string | object | array
// 這裏應用程序開始執行
// webpack開始打包
}
webpack的entry支持三種格式:字符串,對象,數組
字符串:適用於只有一個入口文件的情況
對象:適用於有多個入口文件的情況
數組:適用於多個入口文件的情況
出口
loader
plugins
plugins(插件,是一個數組):webpack功能的擴展,使它的功能更加的強大
plugins是一個數組,數組中的每一項都是某一個plugin的實例,plugins數組甚至可以存在一個插件的多個實例
loader可以來處理css,但是它卻無法獨立的從js中抽離出來,那麼我們就可以用plugins來實現,webpack 稱plugins爲其backbone(支柱),一切loader不能做的處理都可由plugins來做。此評價足見其重要性。
webpack安裝的時候分爲全局安裝和局部安裝,那麼爲什麼還要局部安裝呢?
因爲項目每個版本所依賴的webpack的版本可能不一樣,爲了避免全局的衝突,最好再局部安裝一下。
webpack4.0+與之前版本的一些不同之處
webpack版本更新後將webpack-cli(webpack命令行接口)從webpack中分離出來,因此在安裝webpack時要注意將webpack-cli一併的安裝下來。
配置webpack流程參考
1、全局安裝webpack webpack-cli
npm install webpack webpack-cli -g
2、初始化 npm init
npm init
3、局部安裝 webpack
npm install webpack webpack-cli -D
在這裏-D相當於--save-dev
4、配置webpack.config.js(如果此處未配置,webpack4會將通過一個默認的入口(src/index.js)打包,webpack4之前,未配置會報錯)
5、webpack(打包)
安裝webpack-dev-server服務器