前端工程之多頁面webpack打包模板

如何配置一個多頁應用webpack工程化模板晌砾?

webpack的四個核心概念:

  1. entry
  • 入口:從哪里開始
  1. output
  • 出口:以什么方式結束
  1. loader
  • 加載器:處理其它非原生JS文件
  1. plugin
  • 插件:我還想做更多事情

項目目錄

|--src
|  |--images             圖片
|  |--sass               樣式
|     |-- reset.scss
|     |-- index.scss
|     |-- list.scss
|  |--includes           html公共模板
|     |-- head.pug
|     |-- foot.pug
|  |--js                 js邏輯相關
|     |--util            js工具函數(shù)
|        |-- common.js 
|     |-- index.js 
|     |-- list.js
|  |--index.pug  
|  |--list.pug  
|-- webpack.config.js    webpack打包配置
|-- package.json         項目依賴信息
|-- README.md            項目說明
|-- .gitignore           git忽略配置

webpack配置

var webpack = require('webpack');
var HtmlWebpackPlugin = require('html-webpack-plugin');
var ExtractTextPlugin = require('extract-text-webpack-plugin');

// 環(huán)境變量配置簿废,dev / online
var WEBPACK_ENV = process.env.WEBPACK_ENV || 'dev';

var config = {
    entry: {
        'index': './src/js/index.js',
        'list': './src/js/list.js',
        'about': './src/js/about.js'
    },
    output: {
        path: __dirname + '/dist/',
        publicPath: 'dev' === WEBPACK_ENV ? '/dist/' : '//leyou319.github.io/multipage_webpack/dist/',
        filename: 'js/[name].js'
    },
    module: {
        rules: [
            {
                test: /\.scss$/,
                use: ExtractTextPlugin.extract({
                    fallback: 'style-loader',
                    use: ['css-loader?sourceMap=true', 'sass-loader?sourceMap=true']
                })
            },
            {
                test: /\.(png|jpg|gif)$/,
                use: 'url-loader?limit=8192&name=images/[name].[ext]?[hash:6]'
            },
            {
                test: /\.pug$/,
                use: ['html-loader','pug-html-loader?pretty=true']
            }
        ]
    },
    plugins: [
        new ExtractTextPlugin('css/[name].css'),
        new webpack.optimize.CommonsChunkPlugin({
            name : 'common',
            filename : 'js/common.js'
        }),
    ],
    externals : {
        'jquery' : 'window.jQuery'
    },
    devServer: {
        inline: true,
        proxy: {
            '/ajaxload': {
                target: 'http://www.gitchic.com',
                secure: false,
                changeOrigin: true
            }
        }
    }
}

Object.keys(config.entry).forEach(function(page){
    config.plugins.push( new HtmlWebpackPlugin({
        template: './src/'+ page +'.pug',
        filename: page+'.html',
        inject: true,
        hash: true,
        chunks: ['common', page]
    }) );
});

if('dev' === WEBPACK_ENV){
    config.devtool = 'inline-source-map';
}

module.exports = config;

package配置

"scripts": {
    "dev": "webpack-dev-server",
    "build": "set WEBPACK_ENV=online && webpack -p"
 }

命令行相關

1. 開發(fā)環(huán)境
npm run dev

2. 生產打包
npm run build

項目預覽

項目地址
線上預覽

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市梢薪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,919評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件识虚,死亡現(xiàn)場離奇詭異,居然都是意外死亡妒茬,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評論 3 392
  • 文/潘曉璐 我一進店門蔚晨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來乍钻,“玉大人,你說我怎么就攤上這事铭腕∫瘢” “怎么了?”我有些...
    開封第一講書人閱讀 163,316評論 0 353
  • 文/不壞的土叔 我叫張陵累舷,是天一觀的道長浩考。 經常有香客問我,道長被盈,這世上最難降的妖魔是什么析孽? 我笑而不...
    開封第一講書人閱讀 58,294評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮只怎,結果婚禮上袜瞬,老公的妹妹穿的比我還像新娘。我一直安慰自己身堡,他們只是感情好邓尤,可當我...
    茶點故事閱讀 67,318評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般汞扎。 火紅的嫁衣襯著肌膚如雪季稳。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,245評論 1 299
  • 那天澈魄,我揣著相機與錄音景鼠,去河邊找鬼。 笑死一忱,一個胖子當著我的面吹牛莲蜘,可吹牛的內容都是我干的。 我是一名探鬼主播帘营,決...
    沈念sama閱讀 40,120評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼票渠,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了芬迄?” 一聲冷哼從身側響起问顷,我...
    開封第一講書人閱讀 38,964評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎禀梳,沒想到半個月后杜窄,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,376評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡算途,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,592評論 2 333
  • 正文 我和宋清朗相戀三年塞耕,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嘴瓤。...
    茶點故事閱讀 39,764評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡扫外,死狀恐怖,靈堂內的尸體忽然破棺而出廓脆,到底是詐尸還是另有隱情筛谚,我是刑警寧澤,帶...
    沈念sama閱讀 35,460評論 5 344
  • 正文 年R本政府宣布停忿,位于F島的核電站驾讲,受9級特大地震影響,放射性物質發(fā)生泄漏席赂。R本人自食惡果不足惜吮铭,卻給世界環(huán)境...
    茶點故事閱讀 41,070評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望颅停。 院中可真熱鬧沐兵,春花似錦、人聲如沸便监。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至毁靶,卻和暖如春胧奔,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背预吆。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評論 1 269
  • 我被黑心中介騙來泰國打工龙填, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人拐叉。 一個月前我還...
    沈念sama閱讀 47,819評論 2 370
  • 正文 我出身青樓岩遗,卻偏偏與公主長得像,于是被迫代替她去往敵國和親凤瘦。 傳聞我的和親對象是個殘疾皇子宿礁,可洞房花燭夜當晚...
    茶點故事閱讀 44,665評論 2 354

推薦閱讀更多精彩內容

  • GitChat技術雜談 前言 本文較長,為了節(jié)省你的閱讀時間蔬芥,在文前列寫作思路如下: 什么是 webpack梆靖,它要...
    蕭玄辭閱讀 12,691評論 7 110
  • 無意中看到zhangwnag大佬分享的webpack教程感覺受益匪淺,特此分享以備自己日后查看笔诵,也希望更多的人看到...
    小小字符閱讀 8,164評論 7 35
  • 版權聲明:本文為博主原創(chuàng)文章,未經博主允許不得轉載谢翎。 webpack介紹和使用 一捍靠、webpack介紹 1、由來 ...
    it筱竹閱讀 11,117評論 0 21
  • 記得2004年的時候岳服,互聯(lián)網開發(fā)就是做網頁,那時也沒有前端和后端的區(qū)分希俩,有時一個網站就是一些純靜態(tài)的html吊宋,通過...
    陽陽陽一堆陽閱讀 3,292評論 0 5
  • 2017年8月12日 還有6分鐘shizhong就會定格到8月13日,聽說英仙座的流星雨今夜會劃破長空颜武,留下千年的...
    臻臻的心閱讀 150評論 0 0