WebPack筆記

WebPack 構(gòu)建環(huán)境頁面

初始化

 npm init
 npm i webpack -D

調(diào)試環(huán)境搭建

生成Source Maps

module.exports = {
  devtool: 'eval-source-map',
  entry:  __dirname + "/app/main.js",
  output: {
    path: __dirname + "/public",
    filename: "bundle.js"
  }
}

devtool配置如下:

devtool選項(xiàng) 配置結(jié)果
source-map 在一個(gè)單獨(dú)的文件中產(chǎn)生一個(gè)完整且功能完全的文件晒他。這個(gè)文件具有最好的source map前酿,但是它會(huì)減慢打包速度泌神;
cheap-module-source-map 在一個(gè)單獨(dú)的文件中生成一個(gè)不帶列映射的map合武,不帶列映射提高了打包速度撞鹉,但是也使得瀏覽器開發(fā)者工具只能對(duì)應(yīng)到具體的行败富,不能對(duì)應(yīng)到具體的列(符號(hào))纵寝,會(huì)對(duì)調(diào)試造成不便掩浙;
eval-source-map 使用eval打包源文件模塊舆绎,在同一個(gè)文件中生成干凈的完整的source map鲤脏。這個(gè)選項(xiàng)可以在不影響構(gòu)建速度的前提下生成完整的sourcemap,但是對(duì)打包后輸出的JS文件的執(zhí)行具有性能和安全的隱患吕朵。在開發(fā)階段這是一個(gè)非常好的選項(xiàng)猎醇,在生產(chǎn)階段則一定不要啟用這個(gè)選項(xiàng);
cheap-module-eval-source-map 這是在打包文件時(shí)最快的生成source map的方法努溃,生成的Source Map 會(huì)和打包后的JavaScript文件同行顯示薄榛,沒有列映射唁情,和eval-source-map選項(xiàng)具有相似的缺點(diǎn)吟逝;

本地調(diào)試服務(wù)器:

npm install -D webpack-cli
npm install --save-dev webpack-dev-server //構(gòu)建本地服務(wù)器
module.exports = {
  ...,
  devServer: {
    contentBase: "./public",//本地服務(wù)器所加載的頁面所在的目錄
    historyApiFallback: true,//不跳轉(zhuǎn)
    inline: true//實(shí)時(shí)刷新
  } 
}

Babel的安裝與配置

Babel其實(shí)是幾個(gè)模塊化的包,其核心功能位于稱為babel-core的npm包中称近,webpack可以把其不同的包整合在一起使用,對(duì)于每一個(gè)你需要的功能或拓展哮塞,你都需要安裝單獨(dú)的包(用得最多的是解析Es6的babel-env-preset包和解析JSX的babel-preset-react包)刨秆。

npm install --save-dev babel-core babel-loader babel-preset-env babel-preset-react

babel其實(shí)可以完全在 webpack.config.js 中進(jìn)行配置,但是考慮到babel具有非常多的配置選項(xiàng)忆畅,在單一的webpack.config.js文件中進(jìn)行配置往往使得這個(gè)文件顯得太復(fù)雜衡未,因此一些開發(fā)者支持把babel的配置選項(xiàng)放在一個(gè)單獨(dú)的名為 ".babelrc" 的配置文件中。我們現(xiàn)在的babel的配置并不算復(fù)雜家凯,不過之后我們會(huì)再加一些東西缓醋,因此現(xiàn)在我們就提取出相關(guān)部分,分兩個(gè)配置文件進(jìn)行配置(webpack會(huì)自動(dòng)調(diào)用.babelrc里的babel配置選項(xiàng))绊诲,如下:

  
  ,{
    test: /(\.jsx|\.js)$/,
    use: {
        loader: "babel-loader"
    },
    exclude: /node_modules/
  },
//.babelrc
{
  "presets": ["react", "env"]
}

CSS

webpack提供兩個(gè)工具處理樣式表送粱,css-loader 和 style-loader,二者處理的任務(wù)不同驯镊,css-loader使你能夠使用類似@import 和 url(...)的方法實(shí)現(xiàn) require()的功能,style-loader將所有的計(jì)算后的樣式加入頁面中葫督,二者組合在一起使你能夠把樣式表嵌入webpack打包后的JS文件中。

npm install --save-dev style-loader css-loader
 module: {
        rules: [
          
            {
                test: /\.css$/,
                use: [
                    {
                        loader: "style-loader"
                    }, {
                        loader: "css-loader"
                    }
                ]
            }
        ]
    }

文件加載器

npm install --save-dev file-loader
+ {
+         test: /\.(png|svg|jpg|gif)$/,
+         use: [
+           'file-loader'
+         ]
+  }

字體同樣用該加載器
另外還有 url-loader

+       {
+         test: /\.(woff|woff2|eot|ttf|otf)$/,
+         use: [
+           'file-loader'
+         ]
+       }

CSS預(yù)處理器

Sass 和 Less 之類的預(yù)處理器是對(duì)原生CSS的拓展板惑,它們?cè)试S你使用類似于variables, nesting, mixins, inheritance等不存在于CSS中的特性來寫CSS,CSS預(yù)處理器可以這些特殊類型的語句轉(zhuǎn)化為瀏覽器可識(shí)別的CSS語句偎快,

npm install --save-dev postcss-loader autoprefixer
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末冯乘,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子晒夹,更是在濱河造成了極大的恐慌裆馒,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,589評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件丐怯,死亡現(xiàn)場(chǎng)離奇詭異喷好,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)读跷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門梗搅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人效览,你說我怎么就攤上這事无切。” “怎么了丐枉?”我有些...
    開封第一講書人閱讀 165,933評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵哆键,是天一觀的道長。 經(jīng)常有香客問我瘦锹,道長籍嘹,這世上最難降的妖魔是什么闪盔? 我笑而不...
    開封第一講書人閱讀 58,976評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮辱士,結(jié)果婚禮上泪掀,老公的妹妹穿的比我還像新娘。我一直安慰自己识补,他們只是感情好族淮,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評(píng)論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著凭涂,像睡著了一般祝辣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上切油,一...
    開封第一講書人閱讀 51,775評(píng)論 1 307
  • 那天蝙斜,我揣著相機(jī)與錄音,去河邊找鬼澎胡。 笑死孕荠,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的攻谁。 我是一名探鬼主播稚伍,決...
    沈念sama閱讀 40,474評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼戚宦!你這毒婦竟也來了个曙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,359評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤受楼,失蹤者是張志新(化名)和其女友劉穎垦搬,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體艳汽,經(jīng)...
    沈念sama閱讀 45,854評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡猴贰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了河狐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片米绕。...
    茶點(diǎn)故事閱讀 40,146評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖甚牲,靈堂內(nèi)的尸體忽然破棺而出义郑,到底是詐尸還是另有隱情,我是刑警寧澤丈钙,帶...
    沈念sama閱讀 35,826評(píng)論 5 346
  • 正文 年R本政府宣布非驮,位于F島的核電站,受9級(jí)特大地震影響雏赦,放射性物質(zhì)發(fā)生泄漏劫笙。R本人自食惡果不足惜芙扎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望填大。 院中可真熱鬧戒洼,春花似錦、人聲如沸允华。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽靴寂。三九已至磷蜀,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間百炬,已是汗流浹背褐隆。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留剖踊,地道東北人庶弃。 一個(gè)月前我還...
    沈念sama閱讀 48,420評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像歇攻,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子梆造,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評(píng)論 2 356

推薦閱讀更多精彩內(nèi)容

  • webpack配置DEMO webpack.config.js文件官方標(biāo)配示例如下: 參考各路大神的流程寫下來.....
    章魚不丸子閱讀 557評(píng)論 0 3
  • webpack配置DEMO webpack.config.js文件官方標(biāo)配示例如下: 參考各路大神的流程寫下來.....
    章魚不丸子閱讀 754評(píng)論 0 3
  • 寫在前面的話 閱讀本文之前摊聋,先看下面這個(gè)webpack的配置文件源祈,如果每一項(xiàng)你都懂煎源,那本文能帶給你的收獲也許就比較...
    不忘初心_9a16閱讀 3,235評(píng)論 0 17
  • 版權(quán)聲明:本文為博主原創(chuàng)文章兽埃,未經(jīng)博主允許不得轉(zhuǎn)載侥钳。 webpack介紹和使用 一、webpack介紹 1柄错、由來 ...
    it筱竹閱讀 11,142評(píng)論 0 21
  • 自己做項(xiàng)目中的重點(diǎn)知識(shí)舷夺,不是教程,如果學(xué)習(xí)的話可以拿來參考售貌。源代碼[地址][2][2]: https://gith...
    倪灝閱讀 234評(píng)論 0 0