webpack成神之路(五)

  1. 現(xiàn)在我們試一下多頁面配置
  • 我們在src下建立兩個js裂七。分別為index.js ,a.js 里面只console.log一句話铸题。然后我們在webpack.config.js中配置
let path = require('path')
module.exports={
    mode: 'production',
    entry:{
        home: './src/index.js',
        other: './src/a.js'
    },
    output:{
        filename: '[name].js',   // 打包出對應(yīng)的名字
        path: path.resolve(__dirname, 'dist')
    }
}
  • 然后我們 npm run build 打包祝迂,可以 看到打包出來對應(yīng)的兩個js


    image.png
  1. 現(xiàn)在只是有js。我們還需要頁面铁材。我們用前面了解的html-webpack-plugin
let path = require('path')
let HtmlWebpackPlugin = require('html-webpack-plugin')
module.exports={
    mode: 'production',
    entry:{
        home: './src/index.js',
        other: './src/a.js'
    },
    output:{
        filename: '[name].js',   // 打包出對應(yīng)的名字
        path: path.resolve(__dirname, 'dist')
    },
    plugins:[
        new HtmlWebpackPlugin({
            template: './index.html',
            filename: 'home.html',   // 不能用[name].html,需要用兩次
            chunks: ['home']  // chunks 只打包home對應(yīng)的js
        })
        new HtmlWebpackPlugin({
            template: './index.html',
            filename: 'other.html',
            chunks: ['other']  
        })
    ]
}
  • npm run build打包看結(jié)果,生成的html文件達到了多頁面效果
    image.png
  1. 接下來我們說一下source-map. 主要在webpack.config.js中配置說明一下奕锌。
let path = require('path')
let HtmlWebpackPlugin = require('html-webpack-plugin')
module.exports={
    mode: 'development',
    entry:{
        home: './src/index.js'
    },
    output:{
        filename: '[name].js',   // 打包出對應(yīng)的名字
        path: path.resolve(__dirname, 'dist')
    },
    plugins:[
        new HtmlWebpackPlugin({
            template: './index.html',
            filename: 'index.html',  
            chunks: ['home'] 
        }),
    ],
    devServer:{
        port: 3333,
        open: true
    },
    module:{
        rules:[
            {
                test: /\.js$/,
                exclude: /node_modules/,
                include: path.resolve(__dirname, 'src'),
                use: {
                    loader: 'babel-loader',
                }
            }
        ]
    }
}
  • 然后我們在index.js 中故意把console.log寫錯著觉。npm run serve啟動服務(wù)
    index.js
console.log('我是index.js')

class A{
    constructor(){
        console.lo('wo shi a')
    }
}

let a = new A();
image.png
  • 然后我們點擊錯誤提示,可以跳轉(zhuǎn)到對應(yīng)出錯的地方


    image.png
  • 我們可以配置多種soucemap文件

  1. devtool: 'source-map', // 會打包出map文件惊暴,會指向出錯的行列饼丘, 大而全


    image.png
  • 我們運行打包后的index.html 頁面會提示具體出錯的原文件位置


    image.png
  1. devtool: 'eval-source-map', // 不會產(chǎn)生map文件,也會顯示行列


    image.png
  • 運行html文件點擊控制臺錯誤也會跳轉(zhuǎn)到出錯原文件位置
  1. devtool: 'cheap-module-source-map', // 產(chǎn)生map文件辽话,沒有調(diào)試功能


    image.png

4)devtool: 'cheap-module-eval-source-map', //不會產(chǎn)生map文件葬毫,不會產(chǎn)生列信息


image.png
  • 控制臺報錯可以定位到原文件出錯的行,但是列不行
  1. 隨著項目大了屡穗,后端與前端聯(lián)調(diào)贴捡,我們不需要每一次都去打包,這樣特別麻煩村砂,我們希望的場景是烂斋,每次按保存鍵,webpack自動為我們打包础废,這個工具就是watch汛骂!
  • 因為watch是webpack自帶的插件,所以我們只需要配置就行了
image.png
  • 現(xiàn)在我們只要一修改代碼就會自動打包了评腺,我們在運行打包后的index.html帘瞭,也可以實時的看到效果。
  • 但是還是有點問題蒿讥。 如果我們保存的很快蝶念,大會打包多次,沒有必要芋绸,這時我們就需要配置一下watchOptions


    image.png
  1. 現(xiàn)在我們在了解兩個插件 分別 是copyWebpackPlugin(把文件拷貝到打包文件下媒殉,比如文檔等), bannerPlugin(webpack內(nèi)置的插件摔敛,用于版權(quán)說明)
  • 首先我們按照cnpm i copy-webpack-plugin --save-dev

  • webpack.config.js如下配置廷蓉。打包之后可以看到txt文件原封不動的拷貝到了dist/doc/目錄下;


    image.png
  • 版權(quán)聲明插件由于是內(nèi)置的不用按照額外的插件马昙,我們直接引入webpck. 然后new webpack.BannerPlugin('我是版權(quán)聲明')


    image.png
  • 可以看到打包后的js文件前面都出現(xiàn)了聲明的版權(quán)內(nèi)容

下一篇webpack成神之路(六) http://www.reibang.com/p/8add612b80e6

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末桃犬,一起剝皮案震驚了整個濱河市刹悴,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌攒暇,老刑警劉巖土匀,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異扯饶,居然都是意外死亡恒削,警方通過查閱死者的電腦和手機池颈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進店門尾序,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人躯砰,你說我怎么就攤上這事每币。” “怎么了琢歇?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵兰怠,是天一觀的道長。 經(jīng)常有香客問我李茫,道長揭保,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任魄宏,我火速辦了婚禮秸侣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好池充,可當我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布惑灵。 她就那樣靜靜地躺著,像睡著了一般涩僻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天频轿,我揣著相機與錄音,去河邊找鬼烁焙。 笑死略吨,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的考阱。 我是一名探鬼主播翠忠,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼乞榨!你這毒婦竟也來了秽之?” 一聲冷哼從身側(cè)響起当娱,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎考榨,沒想到半個月后跨细,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡河质,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年冀惭,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片掀鹅。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡散休,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出乐尊,到底是詐尸還是另有隱情戚丸,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布扔嵌,位于F島的核電站限府,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏痢缎。R本人自食惡果不足惜胁勺,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望独旷。 院中可真熱鬧署穗,春花似錦、人聲如沸势告。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽咱台。三九已至络拌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間回溺,已是汗流浹背春贸。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留遗遵,地道東北人萍恕。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像车要,于是被迫代替她去往敵國和親允粤。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,792評論 2 345

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

  • GitChat技術(shù)雜談 前言 本文較長,為了節(jié)省你的閱讀時間类垫,在文前列寫作思路如下: 什么是 webpack司光,它要...
    蕭玄辭閱讀 12,674評論 7 110
  • 前端將大型項目分成一個個單獨的模塊,一般封裝好的每個模塊都會實現(xiàn)一個目的明確的完成的功能悉患。如何處理這些模塊以及模塊...
    pixels閱讀 3,409評論 1 14
  • 學(xué)習(xí)流程 參考文檔:入門Webpack残家,看這篇就夠了Webpack for React 一. 簡單使用webpac...
    Jason_Zeng閱讀 3,113評論 2 16
  • “情懷”和“雞湯”從來都是無論什么內(nèi)容的主流坞淮。畢竟人們?nèi)鄙偈裁矗蛺壅f些什么陪捷。 近期回窘,我們總是在各個平臺和...
    俗不知閱讀 1,339評論 1 0
  • 1.平時大姨媽很準時的我,這個月晚了十天揩局,本打算第二天去醫(yī)院檢查的毫玖,結(jié)果傍晚大姨媽來了掀虎,真及時凌盯。 我不知道這是個好...
    柳絮才高閱讀 181評論 0 0