webpack2.x基礎屬性講解(一)

webpack2.x基礎屬性講解(一)

webpack作爲構建工具平時作爲前端作爲優化、模塊編程、和分片打包的重要組成部分,大家可能並不陌生,如果沒有時刻的去關注文檔,那麼大家可能不太清楚webpack已經默默然的升級到2.x了,對比1.x版本,webpack2的文檔結構和代碼提示都非常友善。

webpack從1.x升到2版,並沒有作爲大的更改改動,而且內部的接口文檔形式也與1基本無修改,那麼對比webpack2版本 我們對webpack的主要屬性做個簡單的屬性講解

webpack2.x基礎屬性講解(一)

首先第一個 webpack2.1後對聲明引入webpack省略了 ,也就是說沒有require('webpack')也可以正常運行,當然不是很建議,因爲後在使用插件的時候需要顯示調用webpack對象。

webpack2.x基礎屬性講解(一)

context:解析和加載的初始路徑,一般在不設置的情況下默認使用當前文件路徑。(官方文檔建議設置,這樣可以獨立於工作環境)

如何設置context的時候注意配置爲全局路徑,通過path進行設置。

entry:程序入口,我們將要對文件處理的程序入口。(就是在使用webpack時要對那幾個文件進行操作)

entry可以傳遞 string字符串、數組、對象結構、函數返回值(不建議)分別定義入口設置。

webpack2.x基礎屬性講解(一)

那麼在webpack2.的官網上 函數設置entry使用的es6的箭頭函數=>與普通函數功能對等

------------------------------------我是華麗的分割線---------------------------------

output:webpack程序操作後的出口配置信息。我們獲取文件後進行了一些操作~如編譯、壓縮、合併後最終需要通過output設置輸出的路徑地址。

output下的屬性配置:

filename:輸出文件的名稱信息。允許自定義或者通過[id]/[hash]進行佔位

webpack2.x基礎屬性講解(一)

publicPath:指定輸出文件的公共Url.(反正生番過來的) 編譯文件中存在src或url時進行設置。

在webpack進行編譯時,如果我們在入口文件entry的內部,使用帶有src的路徑引用,如css的url或html的路徑,javascript標籤的引用,那麼就會造成編譯失敗,因爲物理內存的路徑和當前路徑是不同的,所以publicPath通常作爲文件的href或url來進行設置,名稱隨意 不要太奇怪就好。

chunkFilename:用於未配置在entry中,但是通過import或require依賴關係加載進來的模塊進行命名。如果不進行設置也可以,但是會隨機命名,可讀性差。另外chunkFilename也常用於提取公共模塊。

chunkFilename可以設置格式爲 [id].js / [name].js / [hash].js 分別代表模塊的索引或名稱 (我使用name測試一直失敗,默認給的是數字)

程序配置:

webpack2.x基礎屬性講解(一)

js編寫 => 我這裏使用的es6編寫方式 如果使用require模塊也是可以的 但是注意書寫格式

webpack2.x基礎屬性講解(一)webpack2.x基礎屬性講解(一)

hotupdatechunkFilename: 自定義熱更新模塊(高級設置 與熱鍵部署一塊講)

library: 用來設置導出的包的名稱 (後期例子講解)

libraryTarget:對導出包的格式進行設置 (後期例子講解)

----------------------------------------------我是分割線--------------------------------------------------------

modules下的屬性:

noParse: regExp|[RegExp]

設定webpack在解析時,不解析的路徑結構,格式爲正則,在構建大的項目時嗎,可以提高效率

rules:

定義解析規則,通過配置,對文件進行編譯處理。

rule:規則可以分爲三塊內容 條件 結果 和嵌套規則

rule:{

test:/\.js/

enforce:'pre',

include:[path.resolve(__dirname,'js/app')]

exclude:,

loader|loaders =>在webpack1 設置加載器

oneof:'',

options:,

query:,

parser:{}

resource:'/app/',

resouceQuery:/userName/,

use:

}

test: 匹配要處理的文件格式,正則格式.(test是resouce的簡寫形式)

enforce:加載器的執行順序,不設置爲正常執行。可選值 'pre|post' 前|後

include:將要處理的目錄包括進來

exclude:排除不處理的文件目錄,可以使數組或字符串正則格式

issuer:條件的發起者

loader:一個簡寫的rule.use,既然已經升級了 個人不建議繼續使用

loaders:一個數組結構rule.use的別名 同上

oneOf:匹配規則時,只使用第一匹配的數組

options|query:都是rule.use的簡寫 (保留了好多1的東西 有點用不慣)

parser:解析器選項對象(暫時沒用到過,東西很多 可以去官網看看)

resource:與資源匹配的條件,可以使用正則。例子中匹配資源內部 含有app的文件 如 app.js | demoapp.js

resourceQuery:與資源查詢匹配的條件,匹配資源?後面的字段 如 app.js?userName

use:一個數組結構用於作爲程序解析器的入口路徑 (真抱歉 我特麼沒辦法好好get這個英文的真實意義)

我們就理解use用來作爲引用加載器函數的入口配置吧

哈 屬性稍微多了點 我們拿幾個簡單的例子講解

//1.基礎配置格式

webpack2.x基礎屬性講解(一)

使用模塊化編程解析css樣式 注意 style-loader必須在前

webpack2.x基礎屬性講解(一)

注:webpack 默認對es6中的import模塊是支持的,但是對於let const變量和其他的編譯不進行解析的,因爲webpack認爲es6是個號的姑娘,咳咳 是好的語言,所以無需爲其轉換 我們默認使用即可,所以在低版瀏覽器需還是需要進行轉換的

webpack2.x基礎屬性講解(一)

github代碼例子: https://github.com/kingnuoyan/webpack


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章