webpack區(qū)分打包類(lèi)庫(kù)代碼及代碼優(yōu)化

1.配置文件webpack.config

const path = require('path')
const VueLoaderPlugin = require('vue-loader/lib/plugin');
const HTMLPlugin = require('html-webpack-plugin')
const webpack = require('webpack')
const ExtractPlugin = require('extract-text-webpack-plugin')

const isDev = process.env.NODE_ENV =='development'
const config= {
  target:'web',
  entry: path.join(__dirname, "src/index.js"), //輸入文件
  output: {
    filename: "build.[hash:8].js", //輸出文件
    path: path.join(__dirname, 'dist') //輸出路徑
  },
  module:{
    rules:[
      {
        test:/\.vue$/,
        loader:'vue-loader'
      },{
        test: /\.jsx$/,
        loader: 'babel-loader'
      },
      {
        test:/\.(gif|png|jpg|jpeg|svg)$/,
        use:[{
          loader:'url-loader',
          options:{
            limit:1024,
            name:'[name]-[hash].[ext]'
          }
        }]
      },
     
    ]
  },
  plugins: [
    // make sure to include the plugin for the magic
    new VueLoaderPlugin(),
    new webpack.DefinePlugin({
      'process.env':{
        NODE_ENV:isDev?'"development"':'"production"',
      }
    }),
    new HTMLPlugin(),
  ],
}

if(isDev){
  config.module.rules.push({
       test: /\.styl/,
       use: ['style-loader', 'css-loader', {
         loader: 'postcss-loader',
         options: {
           sourceMap: true
         }
       }, 'stylus-loader']
  })
  config.devtool='#cheap-module-eval-source-map',
  config.devServer={
    port:8000,
    host:'0.0.0.0',
    overlay:{
      errors:true
    },
    // open:true   //每次都打開(kāi)一個(gè)網(wǎng)頁(yè)
    hot:true //只渲染一個(gè)組件
  }
  config.plugins.push(
    new webpack.HotModuleReplacementPlugin(),
    new webpack.NoEmitOnErrorsPlugin(),
  )
}else{
  config.entry={
    app:path.join(__dirname,'src/index.js'),
    vendor:['vue']
  }
  config.output.filename = '[name].[chunkhash:8].js'
  config.module.rules.push(
     {
       test: /\.styl/,
       use:ExtractPlugin.extract({
         fallback:'style-loader',
         use:[
            'css-loader', 
            {
              loader: 'postcss-loader',
              options: {
                sourceMap: true
              }
            },
            'stylus-loader'
         ]
       })
     }
  )
  config.optimization={
      splitChunks: {
        cacheGroups: {
          commons: {
            name: "vendor",
            chunks: "initial",
            minChunks: 2
          }
        }
      }
    }
 config.optimization = {
      splitChunks: {
        cacheGroups: {
          commons: {
            name: "runtime",
            chunks: "initial",
            minChunks: 2
          }
        }
      }
    }
  config.plugins.push(
    new ExtractPlugin('styles.[name].css'),
    // new webpack.optimize.CommonsChunkPlugin({
    //   name:'vendor'
    // })
  )
}
module.exports=config

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末浆竭,一起剝皮案震驚了整個(gè)濱河市地技,隨后出現(xiàn)的幾起案子返干,更是在濱河造成了極大的恐慌陪白,老刑警劉巖痴昧,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)匀归,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)耗帕,“玉大人穆端,你說(shuō)我怎么就攤上這事》卤悖” “怎么了体啰?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)嗽仪。 經(jīng)常有香客問(wèn)我荒勇,道長(zhǎng),這世上最難降的妖魔是什么闻坚? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任沽翔,我火速辦了婚禮,結(jié)果婚禮上窿凤,老公的妹妹穿的比我還像新娘搀擂。我一直安慰自己,他們只是感情好卷玉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著喷市,像睡著了一般相种。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,292評(píng)論 1 301
  • 那天寝并,我揣著相機(jī)與錄音箫措,去河邊找鬼。 笑死衬潦,一個(gè)胖子當(dāng)著我的面吹牛斤蔓,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播镀岛,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼弦牡,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了漂羊?” 一聲冷哼從身側(cè)響起驾锰,我...
    開(kāi)封第一講書(shū)人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎走越,沒(méi)想到半個(gè)月后椭豫,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡旨指,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年赏酥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谆构。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡裸扶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出低淡,到底是詐尸還是另有隱情姓言,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布蔗蹋,位于F島的核電站何荚,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏猪杭。R本人自食惡果不足惜餐塘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望皂吮。 院中可真熱鬧戒傻,春花似錦、人聲如沸蜂筹。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)艺挪。三九已至不翩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背口蝠。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工器钟, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人妙蔗。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓傲霸,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親眉反。 傳聞我的和親對(duì)象是個(gè)殘疾皇子昙啄,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

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

  • 寫(xiě)在開(kāi)頭 先說(shuō)說(shuō)為什么要寫(xiě)這篇文章, 最初的原因是組里的小朋友們看了webpack文檔后, 表情都是這樣的: (摘...
    Lefter閱讀 5,286評(píng)論 4 31
  • 目錄第1章 webpack簡(jiǎn)介 11.1 webpack是什么? 11.2 官網(wǎng)地址 21.3 為什么使用 web...
    lemonzoey閱讀 1,735評(píng)論 0 1
  • GitChat技術(shù)雜談 前言 本文較長(zhǎng)禁漓,為了節(jié)省你的閱讀時(shí)間跟衅,在文前列寫(xiě)作思路如下: 什么是 webpack,它要...
    蕭玄辭閱讀 12,691評(píng)論 7 110
  • 記得2004年的時(shí)候播歼,互聯(lián)網(wǎng)開(kāi)發(fā)就是做網(wǎng)頁(yè)伶跷,那時(shí)也沒(méi)有前端和后端的區(qū)分,有時(shí)一個(gè)網(wǎng)站就是一些純靜態(tài)的html秘狞,通過(guò)...
    陽(yáng)陽(yáng)陽(yáng)一堆陽(yáng)閱讀 3,292評(píng)論 0 5
  • 左鄰右舍 文/黃影 仿佛若干個(gè)箱體 在一起堆積 在一起擠壓 擠得那么地近 近得你我他 在咫尺內(nèi) 把一顆顆心放下 然...
    黃影詩(shī)風(fēng)閱讀 811評(píng)論 14 33