2020-01-10 webpack配置文件

我們將配置項(xiàng)介杆,逐個拿出來分析下弧蝇。

mode

可選值 development production

打包時會將process.env.NODE_ENV修改為此值

mode: 'production',

entry

入口文件

entry: {
  app: ['./src/index.js']
},

output

output: {
    path: path.resolve(process.cwd(), './lib'),  // 輸出文件的目錄,是個絕對路徑
    publicPath: '/dist/', // 所有靜態(tài)資源都會加上這個前綴 比如 images/a.png -> /dist/images/a.png
    filename: '[name].min.js', // 打完包的入口文件, 入口文件名.min.js
    chunkFilename: '[id].js', // 非入口文件,按這種方式輸出文件 0.js, 1.js ...
    libraryTarget: 'umd', // 和 library配合使用可免,規(guī)定你的代碼打包成的模塊鸿秆,可以用什么規(guī)范導(dǎo)入,這里可以用umd方式導(dǎo)入胖烛,即CommonJS, AMD 或者全局變量方式導(dǎo)入 
    libraryExport: 'default', // 哪些子模塊需要被導(dǎo)出。libraryTarget 支持 commonjs才有意義诅迷,這里只導(dǎo)出default子模塊。
    library: 'ELEMENT', // 導(dǎo)出的模塊名
    umdNamedDefine: true, // 是否將模塊名稱作為 AMD 輸出的命名空間
    globalObject: 'typeof self !== \'undefined\' ? self : this' // 如果輸出全局對象的話众旗,綁定到這個對象上比如 self.ELEMENT  或者 this.ELEMENT
  },

resolve

resolve: {
    extensions: ['.js', '.vue', '.json'], // 導(dǎo)入文件時罢杉,不帶擴(kuò)展名,會依次按這幾個擴(kuò)展名找
    alias: config.alias // 創(chuàng)建 import 或 require 的別名贡歧,來確保模塊引入變得更簡單滩租, 比如import 'element-ui' 就相當(dāng)于 import 'element-ui在項(xiàng)目下的路徑'
},

externals

如果我們想引用一個庫,但是又不想讓webpack一起打包利朵,就用externals

externals: {
  "lodash": {
        commonjs: "lodash",//如果我們的庫運(yùn)行在Node.js環(huán)境中律想,import _ from 'lodash'等價于const _ = require('lodash') 轉(zhuǎn)成異步加載
        commonjs2: "lodash",//同上
        amd: "lodash",//如果我們的庫使用require.js等加載,等價于 define(["lodash"], factory);
        root: "_"http://如果我們的庫在瀏覽器中使用,需要提供一個全局的變量‘_’绍弟,等價于 var _ = (window._) or (_);
  }
}

optimization

代碼優(yōu)化技即,減少體積等

optimization: {
  minimizer: [  // 定制壓縮選項(xiàng)
    new TerserPlugin({
      terserOptions: {
        output: {
          comments: false // 去掉注釋
        }
      }
    })
  ]
},

performance

打包時性能提示的相關(guān)配置

performance: {
  hints: false // 不提示 可選值 false | "error" | "warning", 如果開啟,一個資源大于 250kb 就會有提示
},

stats

打包過程中樟遣,控制臺輸出信息的配置而叼。參數(shù)比較多,官方文檔定義也比較清楚豹悬,有需要可查閱

stats: {
  children: false // 不顯示子信息葵陵,這個子信息是什么,還不清楚瞻佛,可以分別打開脱篙,關(guān)閉測試下
},

module

module.rules

創(chuàng)建模塊時,匹配請求的規(guī)則數(shù)組。這些規(guī)則能夠修改模塊的創(chuàng)建方式绊困。這些規(guī)則能夠?qū)δK(module)應(yīng)用 loader忍弛,或者修改解析器(parser)。

module: {
    rules: [
      {
        test: /\.(jsx?|babel|es6)$/, // resource 條件1
        include: process.cwd(), // resource 條件2
        exclude: config.jsexclude, // resource 條件3
        loader: 'babel-loader' // 匹配成功的結(jié)果
      },
      {
        test: /\.vue$/, resource 條件1
        loader: 'vue-loader', // 匹配成功的結(jié)果考抄, 應(yīng)用vue-loader
        options: {
          compilerOptions: {
            preserveWhitespace: false // 忽略模版中HTML標(biāo)簽間的空格
          }
        }
      }
    ]
  },

plugins

plugins: [
  new webpack.DefinePlugin({ // 允許你創(chuàng)建可在編譯時配置的全局常量细疚。這對需要在開發(fā)環(huán)境構(gòu)建和生產(chǎn)環(huán)境構(gòu)建之間產(chǎn)生不同行為來說非常有用。
      // Definitions...
  }),
  new ProgressBarPlugin(), // 打包編譯時川梅,顯示進(jìn)度條
  new VueLoaderPlugin() // 為vue-loader服務(wù)
]

npm設(shè)置淘寶源

// npm設(shè)置新淘寶源
npm config set registry https://registry.npmmirror.com
// npm設(shè)置回本源
npm config set registry https://registry.npmjs.org
yarn設(shè)置新淘寶源

// yarn設(shè)置淘寶源
yarn config set registry https://registry.npmmirror.com
// yarn 設(shè)置回本源
yarn config set registry https://registry.yarnpkg.com/
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末疯兼,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子贫途,更是在濱河造成了極大的恐慌吧彪,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件丢早,死亡現(xiàn)場離奇詭異姨裸,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)怨酝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進(jìn)店門傀缩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人农猬,你說我怎么就攤上這事赡艰。” “怎么了斤葱?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵慷垮,是天一觀的道長。 經(jīng)常有香客問我揍堕,道長料身,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任衩茸,我火速辦了婚禮芹血,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘递瑰。我一直安慰自己祟牲,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布抖部。 她就那樣靜靜地躺著说贝,像睡著了一般。 火紅的嫁衣襯著肌膚如雪慎颗。 梳的紋絲不亂的頭發(fā)上乡恕,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天言询,我揣著相機(jī)與錄音,去河邊找鬼傲宜。 笑死运杭,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的函卒。 我是一名探鬼主播辆憔,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼报嵌!你這毒婦竟也來了虱咧?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤锚国,失蹤者是張志新(化名)和其女友劉穎腕巡,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體血筑,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡绘沉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了豺总。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片车伞。...
    茶點(diǎn)故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖园欣,靈堂內(nèi)的尸體忽然破棺而出帖世,到底是詐尸還是另有隱情,我是刑警寧澤沸枯,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站赂弓,受9級特大地震影響绑榴,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜盈魁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一翔怎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧杨耙,春花似錦赤套、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至车柠,卻和暖如春剔氏,著一層夾襖步出監(jiān)牢的瞬間塑猖,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工谈跛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留羊苟,地道東北人。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓感憾,卻偏偏與公主長得像蜡励,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子阻桅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評論 2 355

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

  • 磨刀不誤砍柴工凉倚。 webpack在前端工程化中出場率極高。為了讓自己的前端工作更順利鳍刷,有必要把webpack的配置...
    treeQQ閱讀 915評論 0 0
  • 對于之前webpack使用與配置(上)的補(bǔ)充 使用typescript時需要在根目錄下創(chuàng)建一個tsconfig.j...
    XJBT閱讀 495評論 0 2
  • 【原文】事事留個有余不盡的意思占遥,便造物不能忌我,鬼神不能損我输瓜。若業(yè)必求滿瓦胎,功必求盈者,不生內(nèi)變尤揣,必召外憂搔啊。 【注釋...
    悅讀文摘閱讀 1,229評論 0 2
  • 有些朋友 由于自身的局限性,會不經(jīng)意的用語言或是行動來影響你的決定北戏,或干擾你的工作负芋。當(dāng)然,我也經(jīng)常扮演這樣的角色嗜愈。...
    郎德山閱讀 216評論 0 0
  • 【現(xiàn)貨】 盤面幾個背離點(diǎn)都還算是比較漂亮的 【期貨】
    資本是個球閱讀 70評論 0 0