Webpack「一」-- 基本配置

1.拆分配置和merge

webpack配置文件拆分為:
webpack.common.js 存放公共配置
webpack.dev.js 存放開發(fā)環(huán)境配置
webpack.prod.js 存放生產(chǎn)環(huán)境配置

開發(fā)環(huán)境 和 生產(chǎn)環(huán)境 分別引入 webpack.common.js:

安裝webpack-merge以用來引入webpack.common.js:

const webpackCommonConf = require('./webpack.common.js')
const { merge } = require('webpack-merge')
module.exports = merge(webpackCommonConf,{
    ...
})

在package.json里配置:

"scripts": {
    "dev": "webpack-dev-server --config build/webpack.dev.js",
    "build": "webpack --config build/webpack.prod.js"
},

運行 npm run dev執(zhí)行開發(fā)環(huán)境的打包
運行 npm run build執(zhí)行生產(chǎn)環(huán)境的打包

2.啟動本地服務

在開發(fā)環(huán)境下配置[webpack.dev.js]:

需要安裝 webpack-dev-server

devServer: {
    port: 8080, //端口
    progress: true, // 顯示打包的進度條
    contentBase: distPath, // 根目錄
    open: true, // 自動打開瀏覽器
    compress: true, // 啟動 gzip 壓縮

    // 設置代理 
    proxy: {
    // 將本地 /api/xxx 代理到 localhost:3000/api/xxx
    '/api': 'http://localhost:3000',

    // 將本地 /api2/xxx 代理到 localhost:3000/xxx
    '/api2': {
        target: 'http://localhost:3000',
        pathRewrite: {
        '/api2': ''
        }
    }
    }
}

3.處理ES6

在公共環(huán)境下配置[webpack.common.js]:

module:{
  rules:[
    {
      test: /\.js$/,
      loader: ['babel-loader'],
      include: srcPath,
      exclude: /node_modules/
    }
  ]
}

用babel-loader處理ES6

配置.babelrc

{
    "presets": ["@babel/preset-env"],//preset-env常規(guī)插件打包配置
    "plugins": []
}

4.處理樣式

在公共環(huán)境下配置[webpack.common.js]:

module:{
  rules:[
    {
    test: /\.css$/,
    // loader 的執(zhí)行順序是:從后往前
    loader: ['style-loader', 'css-loader', 'postcss-loader'] // 加了 postcss
    },
    {
      test: /\.less$/,
      // 增加 'less-loader' ,注意順序
      loader: ['style-loader', 'css-loader', 'less-loader']
    }
  ]
}

postcss-loader 做瀏覽器兼容性
配置postcss.config.js

module.exports = {
  plugins: [require('autoprefixer')] //默認加前綴忠烛,如-webkit
}

5.處理圖片

在開發(fā)環(huán)境下配置[webpack.dev.js]:

module:{
  rules:[
    // 直接引入圖片 url
    {
      test: /\.(png|jpg|jpeg|gif)$/,
      use: 'file-loader'
    }
  ]
}

在生產(chǎn)環(huán)境下配置[webpack.prod.js]:

module:{
  rules:[
    // 圖片 - 考慮 base64 編碼的情況
    {
      test: /\.(png|jpg|jpeg|gif)$/,
      use: {
        loader: 'url-loader',
        options: {
          // 小于 5kb 的圖片用 base64 格式產(chǎn)出
          // 否則榛斯,依然延用 file-loader 的形式肤晓,產(chǎn)出 url 格式
          limit: 5 * 1024,

          // 打包到 img 目錄下
          outputPath: '/img1/',

          // 設置圖片的 cdn 地址(也可以統(tǒng)一在外面的 output 中設置唯袄,那將作用于所有靜態(tài)資源)
          // publicPath: 'http://cdn.abc.com'
        }
      }
    },
  ]
}

6.出口文件配置hash

在生產(chǎn)環(huán)境下配置[webpack.prod.js]:

output: {
    filename: 'bundle.[contentHash:8].js',  // 打包代碼時飒赃,加上 hash 戳,內(nèi)容改變時冒嫡,hash值改變释液,避免訪問緩存
    path: distPath,
}

7.模塊化

使用import 需要引入webpack使用

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末涣雕,一起剝皮案震驚了整個濱河市艰亮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌挣郭,老刑警劉巖迄埃,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異兑障,居然都是意外死亡侄非,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門流译,熙熙樓的掌柜王于貴愁眉苦臉地迎上來彩库,“玉大人,你說我怎么就攤上這事先蒋『眨” “怎么了?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵竞漾,是天一觀的道長眯搭。 經(jīng)常有香客問我,道長业岁,這世上最難降的妖魔是什么鳞仙? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮笔时,結果婚禮上棍好,老公的妹妹穿的比我還像新娘。我一直安慰自己允耿,他們只是感情好借笙,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著较锡,像睡著了一般业稼。 火紅的嫁衣襯著肌膚如雪雾棺。 梳的紋絲不亂的頭發(fā)上俭尖,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天苛萎,我揣著相機與錄音缎浇,去河邊找鬼。 笑死熔号,一個胖子當著我的面吹牛稽鞭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播引镊,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼朦蕴,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了祠乃?” 一聲冷哼從身側響起梦重,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎亮瓷,沒想到半個月后琴拧,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡嘱支,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年蚓胸,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片除师。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡沛膳,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出汛聚,到底是詐尸還是另有隱情锹安,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布倚舀,位于F島的核電站叹哭,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏痕貌。R本人自食惡果不足惜风罩,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望舵稠。 院中可真熱鬧超升,春花似錦、人聲如沸哺徊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽唉工。三九已至研乒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間淋硝,已是汗流浹背雹熬。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留谣膳,地道東北人竿报。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像继谚,于是被迫代替她去往敵國和親烈菌。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355

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