webpack 基本配置

webpack 基本配置

webpack是每個(gè)前端開(kāi)發(fā)者應(yīng)該掌握的技能,這篇文章記錄一下webpack的基本配置冗恨。

安裝

安裝之前請(qǐng)確保電腦已經(jīng)安裝了node.js

  • 新建目錄
    npm init    // 項(xiàng)目初始化
    npm install webpack webpack-cli -D      // 安裝webpack和webpack命令行工具

配置

  • 安裝完成后新建目錄結(jié)構(gòu)
     node_modules   // 項(xiàng)目依賴(lài) (默認(rèn)生成)
     package.json   // 項(xiàng)目描述 (默認(rèn)生成)
     src                // 源碼目錄 (手動(dòng)創(chuàng)建)
        index.js        // 入口js文件   
     views              // 視圖文件夾 (手動(dòng)創(chuàng)建)
        index.html      // 入口html文件
     webpack.config.js  // webpack配置文件 (手動(dòng)創(chuàng)建)
  • 打開(kāi)webpack.config.js答憔,編輯內(nèi)容
    const path = require('path');   // 引入node里面內(nèi)置的path模塊
    module.expres = {
        entry:'./src/index.js',     // 入口文件位置
        output:{
            filename:'bundle.js',       // 打包完成后的文件名
            path:path.join(__dirname,'dist')   // 打包完成后輸出的位置
        }
    }
  • 配置項(xiàng)目腳本文件
    打開(kāi)package.json文件,新建項(xiàng)目腳本
    {
        ......
        "scripts": {
            "test": "echo \"Error: no test specified\" && exit 1",
            "build":"webpack"       // 添加腳本
        },
        ......
    }
  • 輸入命令 npm run build掀抹,出現(xiàn)下列代碼虐拓,就說(shuō)明打包成功
圖片
使用webpack-dev-server

webpack-dev-server 是一個(gè)簡(jiǎn)單的 web 服務(wù)器,并且能夠?qū)崟r(shí)重新加載傲武。

  • 安裝
    npm install webpack-dev-server -D
  • 打開(kāi)webpack.config.js蓉驹,添加webpack-dev-server配置
    entry:'./src/index.js',
    output:{
        filename:'bundle.js',
        path:path.join(__dirname,'dist')
    },
    // wepack-dev-server 配置
    devServer:{
        port:8080,      // 配置端口為8080
        hot:true,       // 打開(kāi)熱更新
        open:true,      // 啟動(dòng)后打開(kāi)瀏覽器
        contentBase:'./views'   // 設(shè)置views目錄下的文件為可訪(fǎng)問(wèn)文件
    }
  • 配置項(xiàng)目腳本文件
    打開(kāi)package.json文件,新建項(xiàng)目腳本
    {
        ......
        "scripts": {
            "test": "echo \"Error: no test specified\" && exit 1",
            "build":"webpack",
            "dev":"webpack-dev-server"      // 添加腳本
        },
        ......
    }
  • 輸入命令 npm run dev揪利,出現(xiàn)下列代碼态兴,就說(shuō)明配置成功
    i ?wds?: Project is running at http://localhost:8080/
    i ?wds?: webpack output is served from /
    i ?wds?: Content not from webpack is served from ./views
    i ?wdm?: wait until bundle finished: /
    i ?wdm?: Hash: a098c315bf6e497c3966
使用html-webpack-plugin

官網(wǎng)是這么說(shuō)的

HtmlWebpackPlugin簡(jiǎn)化了HTML文件的創(chuàng)建,以便為你的webpack包提供服務(wù)疟位。這對(duì)于在文件名中包含每次會(huì)隨著編譯而發(fā)生變化哈希的 webpack bundle 尤其有用瞻润。 你可以讓插件為你生成一個(gè)HTML文件,使用lodash模板提供你自己的模板,或使用你自己的loader绍撞。

解釋
html-webpack-plugin 插件是用于編譯 Webpack 項(xiàng)目中的 html 類(lèi)型的文件正勒,如果直接將 html 文件置于 ./src 目錄中,用 Webpack 打包時(shí)是不會(huì)編譯到生產(chǎn)環(huán)境中的傻铣,html-wepack-plugin就解決了這個(gè)問(wèn)題

  • 安裝
    npm install html-webpack-plugin -D
  • 配置
    打開(kāi)webpack.config.js文件章贞,編輯內(nèi)容
const path = require('path');
const htmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
    entry:'./src/index.js',
    output:{
        filename:'bundle.js',
        path:path.join(__dirname,'dist')
    },
    devServer:{
        port:8080,
        hot:true,
        open:true,
        contentBase:'./views'
    },
    // 添加內(nèi)容
    plugins:[
        new htmlWebpackPlugin({
            filename:'index.html',
            template:'./views/index.html'
        })
    ]
}
使用loader

webpack 可以使用 loader 來(lái)預(yù)處理文件。這允許你打包除 JavaScript 之外的任何靜態(tài)資源非洲。你可以使用 Node.js 來(lái)很簡(jiǎn)單地編寫(xiě)自己的 loader

  • 安裝css-loader
    css-loader依賴(lài)style-loader
    npm install style-loader css-loader -D
  • 配置
    打開(kāi)weboack.config.js 編輯內(nèi)容
    plugins: [
        new htmlWebpackPlugin({
            filename: 'index.html',
            template: './views/index.html'
        })
    ],
    // 添加內(nèi)容
    module: {
        rules: [
            {
                test: /\.css$/, use: ['style-loader','css-loader']
            }
        ]
    }
  • 安裝url-loader
    url-loader依賴(lài)file-loader
    npm install url-loader file-loader -D
  • 配置
    打開(kāi)weboack.config.js 編輯內(nèi)容
    plugins: [
        new htmlWebpackPlugin({
            filename: 'index.html',
            template: './views/index.html'
        })
    ],
    // 添加內(nèi)容
    module: {
        rules: [
            {
                test: /\.css$/, use: ['style-loader','css-loader'],
            },
            { test: /\.(ttf|eot|svg|woff|woff2)$/, use: 'url-loader' }
        ]
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鸭限,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子两踏,更是在濱河造成了極大的恐慌败京,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缆瓣,死亡現(xiàn)場(chǎng)離奇詭異喧枷,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)弓坞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)隧甚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人渡冻,你說(shuō)我怎么就攤上這事戚扳。” “怎么了族吻?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵帽借,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我超歌,道長(zhǎng)砍艾,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任巍举,我火速辦了婚禮脆荷,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘懊悯。我一直安慰自己蜓谋,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布炭分。 她就那樣靜靜地躺著桃焕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪捧毛。 梳的紋絲不亂的頭發(fā)上观堂,一...
    開(kāi)封第一講書(shū)人閱讀 51,679評(píng)論 1 305
  • 那天让网,我揣著相機(jī)與錄音,去河邊找鬼师痕。 笑死寂祥,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的七兜。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼福扬,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼腕铸!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起铛碑,我...
    開(kāi)封第一講書(shū)人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤狠裹,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后汽烦,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體涛菠,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年撇吞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了俗冻。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡牍颈,死狀恐怖迄薄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情煮岁,我是刑警寧澤讥蔽,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站画机,受9級(jí)特大地震影響冶伞,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜步氏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一响禽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧戳护,春花似錦金抡、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至铺董,卻和暖如春巫击,著一層夾襖步出監(jiān)牢的瞬間禀晓,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工坝锰, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留粹懒,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓顷级,卻偏偏與公主長(zhǎng)得像凫乖,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子弓颈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

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

  • webpack 前身 browserify帽芽,缺點(diǎn)只能轉(zhuǎn)化js 一、作用: 一切都是模塊化 webpack相當(dāng)于一個(gè)...
    前端小華子閱讀 1,184評(píng)論 0 1
  • webpack - 最熱門(mén)的前端資源模塊化管理和打包工具 簡(jiǎn)單設(shè)置(單頁(yè)面) 先安裝webpack npm ins...
    zz77zz閱讀 514評(píng)論 0 2
  • 一翔冀、入門(mén)loader可以看作是翻譯員导街,配置module.rules數(shù)組里的規(guī)則,告訴webpack遇到哪些文件使用...
    zx_lau閱讀 2,999評(píng)論 0 0
  • webpack 中間可能會(huì)出現(xiàn)cnpm , npm ,yarn等三種安裝方式,其實(shí)最終安裝的結(jié)果都是一樣的,只是安...
    諾克斯1閱讀 347評(píng)論 0 0
  • 這個(gè)世界什么都輕賤了 我決定百無(wú)聊賴(lài)纤子,事不關(guān)心
    檸檬下酒閱讀 186評(píng)論 0 1