webpack study

一、主要概念:
1屑埋、entry(入口)
入口起點(entry point)指示 webpack 應(yīng)該使用哪個模塊肆汹,來作為構(gòu)建其內(nèi)部依賴圖的開始。進入入口起點后输虱,webpack 會找出有哪些模塊和庫是入口起點(直接和間接)依賴的些楣。

entry: './src/index.js', // 1、單個入口
entry: {
    main: './src/index.js',
},                                 // 2宪睹、單個入口愁茁,是1的具體寫法
entry: ['./src/index.js', './src/index2.js',], // 3、多個入口亭病,輸出為1個
entry: {
    test1: './src/index.js',
    test2: './src/index.js',
},                                 // 4鹅很、多個入口,輸出為多個(擴展性寫法)

一般情況下都是一個html對應(yīng)一個入口(單頁應(yīng)用和多頁應(yīng)用)
2罪帖、output(輸出)
配置 output 選項可以控制 webpack 如何向硬盤寫入編譯文件道宅。注意,即使可以存在多個入口起點胸蛛,但只指定一個輸出配置污茵。
----輸出單個文件

output: {
    filename: 'bundle.js', // 輸出文件名
    path: '/public' // 輸出文件路徑
}

----多個入口,輸出使用[占位符[name]來根據(jù)入口的key來輸出多個的文件

entry: {
    app: './src/app.js',
    search: './src/search.js'
  },
  output: {
    filename: '[name].js',
    path: __dirname + '/dist'
  }

3葬项、loader
loader 用于對模塊的源代碼進行轉(zhuǎn)換泞当。loader 可以使你在 import 或require模塊時預(yù)處理文件。因此民珍,loader 類似于其他構(gòu)建工具中“任務(wù)(task)”襟士,并提供了處理前端構(gòu)建步驟的強大方法盗飒。loader 可以將文件從不同的語言(如 TypeScript)轉(zhuǎn)換為 JavaScript,或?qū)?nèi)聯(lián)圖像轉(zhuǎn)換為 data URL陋桂。有三種方式

  • [Configuration] (推薦): Specify them in your webpack.config.js file.(外聯(lián))
  • [Inline]: Specify them explicitly in each import statement.(內(nèi)聯(lián))
  • [CLI]: Specify them within a shell command.
rules: [
      {
        test: /\.css$/,
        use: ['style-loader', 'css-loader']
      },
      {
        test: /\.(png|jpg)$/,
        use: [
          {
             loader: 'url-loader',
             options: {
               limit: 1000
             }
          }
        ]
      },
      {
         test: /\.(js|jsx)$/,
         use: 'babel-loader'
      },
      {
            test: /\.jsx?$/,
            loader: 'babel-loader',
            exclude: /node_modules/,
            query: {
                presets: ['es2015', 'react']
            }
        },
]
import Styles from 'style-loader!css-loader?modules!./styles.css'; // 內(nèi)聯(lián)
webpack --module-bind jade-loader --module-bind 'css=style-loader!css-loader' // CLI

loader 支持鏈?zhǔn)絺鬟f逆趣。能夠?qū)Y源使用流水線(pipeline)。一組鏈?zhǔn)降?loader 將按照相反的順序執(zhí)行嗜历。loader 鏈中的第一個 loader 返回值給下一個 loader宣渗。在最后一個 loader,返回 webpack 所預(yù)期的 JavaScript梨州。
loader 可以是同步的痕囱,也可以是異步的。
loader 運行在 Node.js 中暴匠,并且能夠執(zhí)行任何可能的操作鞍恢。
loader 接收查詢參數(shù)。用于對 loader 傳遞配置每窖。
loader 也能夠使用 options 對象進行配置帮掉。
除了使用 package.json 常見的 main 屬性,還可以將普通的 npm 模塊導(dǎo)出為 loader窒典,做法是在 package.json 里定義一個 loader 字段蟆炊。
插件(plugin)可以為 loader 帶來更多特性。
loader 能夠產(chǎn)生額外的任意文件崇败。

4盅称、Plugins(插件)
插件是 wepback 的支柱功能。webpack 自身也是構(gòu)建于后室,你在 webpack 配置中用到的相同的插件系統(tǒng)之上缩膝!

插件目的在于解決 loader 無法實現(xiàn)的其他事

const HtmlWebpackPlugin = require('html-webpack-plugin'); //通過 npm 安裝
const webpack = require('webpack'); //訪問內(nèi)置的插件
const path = require('path');

const config = {
  entry: './path/to/my/entry/file.js',
  output: {
    filename: 'my-first-webpack.bundle.js',
    path: path.resolve(__dirname, 'dist')
  },
  module: {
    loaders: [
      {
        test: /\.(js|jsx)$/,
        use: 'babel-loader'
      }
    ]
  },
  plugins: [
    new webpack.optimize.UglifyJsPlugin(),
    new HtmlWebpackPlugin({template: './src/index.html'})
  ]
};

module.exports = config;

注釋:loaders和rules:loaders一般在webpack1中使用岸霹,rules一般在webpack2中使用疾层,loaders以后會被廢棄,所以還是直接用rules

先寫到這吧贡避,引用來自webpack官網(wǎng)https://webpack.js.org

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末痛黎,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子刮吧,更是在濱河造成了極大的恐慌湖饱,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件杀捻,死亡現(xiàn)場離奇詭異井厌,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門仅仆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來器赞,“玉大人,你說我怎么就攤上這事墓拜「酃瘢” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵咳榜,是天一觀的道長夏醉。 經(jīng)常有香客問我,道長贿衍,這世上最難降的妖魔是什么授舟? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任救恨,我火速辦了婚禮贸辈,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘肠槽。我一直安慰自己擎淤,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布秸仙。 她就那樣靜靜地躺著嘴拢,像睡著了一般。 火紅的嫁衣襯著肌膚如雪寂纪。 梳的紋絲不亂的頭發(fā)上席吴,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天,我揣著相機與錄音捞蛋,去河邊找鬼孝冒。 笑死,一個胖子當(dāng)著我的面吹牛拟杉,可吹牛的內(nèi)容都是我干的庄涡。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼搬设,長吁一口氣:“原來是場噩夢啊……” “哼穴店!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起拿穴,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤泣洞,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后默色,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體球凰,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了弟蚀。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蚤霞。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖义钉,靈堂內(nèi)的尸體忽然破棺而出昧绣,到底是詐尸還是另有隱情,我是刑警寧澤捶闸,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布夜畴,位于F島的核電站,受9級特大地震影響删壮,放射性物質(zhì)發(fā)生泄漏贪绘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一央碟、第九天 我趴在偏房一處隱蔽的房頂上張望税灌。 院中可真熱鬧,春花似錦亿虽、人聲如沸菱涤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽粘秆。三九已至,卻和暖如春收毫,著一層夾襖步出監(jiān)牢的瞬間攻走,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工此再, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留昔搂,地道東北人。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓引润,卻偏偏與公主長得像巩趁,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子淳附,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,933評論 2 355

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