出口(Output)

output選項影響編譯輸出。output選項控制 webpack 如何向硬盤寫入編譯文件箭跳。注意委乌,即使可以存在多個入口點鞠柄,但只指定一個輸出配置。

如果你用了哈希([hash][chunkhash]),請確保模塊具有一致的順序。可以使用 OccurrenceOrderPluginrecordsPath等脂。

用法

webpack配置中的output屬性的最低要求是將其設(shè)置為一個對象,包括以下兩點:

你編譯出來文件名隨你命名撑蚌,但是我們通常使用 : main.js 或者 bundle.js 或者 index.js上遥。

一個 output.path必須是一個 絕對路徑 ,該路徑指向你想打包到的目錄争涌。

webpack.config.js

const config = {
  output: {
    filename: 'bundle.js',
    path: '/home/proj/public/assets'
  }
};

module.exports = config;

選項

以下列出可以向 output 屬性傳入的值粉楚。

output.chunkFilename

非入口塊的文件名,作為 output.path 目錄中的相對路徑亮垫。

[id] 被 chunk 的 id 替換模软。

[name] 被 chunk 的 name 替換(或者當(dāng) chunk 沒有 name 時使用 id 替換)。

[hash] 被編譯的 hash 替換饮潦。

[chunkhash] 被 chunk 的 hash 替換燃异。

output.crossOriginLoading

選項啟用跨域加載(cross-origin loading) chunk。

可能的值有:
false - 禁用跨域加載
anonymous - 啟用跨域加載继蜡。當(dāng)使用 anonymous
時回俐,發(fā)送請求不帶憑據(jù)(credential)。
use-credentials - 啟用跨域加載稀并。發(fā)送請求帶憑據(jù)(credential)仅颇。
更多跨域加載信息請查看MDN

默認(rèn)值:false

參考library
參考Development Tools

output.devtoolLineToLine

所有/指定模塊啟用行到行映射模式。行到行映射模式使用一個簡單的 SourceMap碘举,其中生成源碼的每一行都映射到原始源碼的同一行忘瓦。這是一個可以性能優(yōu)化的地方。當(dāng)你需要更好的性能殴俱,并且要確保輸入行和生成行匹配時,才會考慮啟用枚抵。

true 在所有模塊啟用(不推薦)

{test, include, exclude}對象 在特定文件啟用(類似于 module.loaders)线欲。

默認(rèn)值:disabled

output.filename

指定硬盤每個輸出文件的名稱。在這里你不能指定絕對路徑汽摹!·output.path· 選項規(guī)定了文件被寫入硬盤的位置李丰。·filename· 僅用于命名每個文件逼泣。

單入口

{
  entry: './src/app.js',
  output: {
    filename: 'bundle.js',
    path: __dirname + '/build'
  }
}

// writes to disk: ./build/bundle.js

多入口

如果你的配置創(chuàng)建了多個 "chunk"(例如使用多個入口點或使用類似 CommonsChunkPlugin 的插件)趴泌,你應(yīng)該使用以下的替換方式來確保每個文件名都不重復(fù)舟舒。

[name] 被 chunk 的 name 替換。

[hash] 被編譯(compilation)的 hash 替換嗜憔。

[chunkhash]被 chunk 的 hash 替換秃励。

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

// writes to disk: ./build/app.js, ./build/search.js

output.hotUpdateChunkFilename

熱更新塊 的文件名。它們在output.path目錄中吉捶。

[id] 被 chunk 的 id 替換夺鲜。

[hash] 被編譯的 hash 替換。(最后一個 hash 存儲在記錄中)

默認(rèn)值: "[id].[hash].hot-update.js"

output.hotUpdateFunction

webpack 用于異步加載熱更新塊的 JSONP 函數(shù)呐舔。

默認(rèn)值: "webpackHotUpdate"

output.hotUpdateMainFilename

熱更新主文件的文件名币励。

[hash] 被編譯的 hash 替換。(最后一個 hash 存儲在記錄中)

默認(rèn)值: "[hash].hot-update.json"

output.jsonpFunction

webpack 用于異步加載塊(chunk)的 JSONP 函數(shù)珊拼。

較短的函數(shù)可能會減少文件大小食呻。當(dāng)單頁有多個 webpack 實例時,請使用不同的標(biāo)識符澎现。

默認(rèn)值: "webpackJsonp"

output.library

如果設(shè)置過仅胞,可將包導(dǎo)出為庫。output.library 是庫的名稱昔头。

如果你正在編寫庫并且想要將其發(fā)布為一個單文件饼问,請使用此選項。

output.libraryTarget

導(dǎo)出庫的格式

"var" - 通過設(shè)置一個變量導(dǎo)出:var Library = xxx(默認(rèn))

"this" - 通過設(shè)置this的一個屬性導(dǎo)出:this["Library"] = xxx

"commonjs" - 通過設(shè)置exports的一個屬性導(dǎo)出:exports["Library"] = xxx

"commonjs2" - 通過設(shè)置module.exportsmodule.exports = xxx

"amd" - 導(dǎo)出到 AMD(可選命名 - 通過 library 選項設(shè)置名稱)

"umd" - 導(dǎo)出到 AMD揭斧,CommonJS2 或者 root 的一個屬性

默認(rèn)值: "var"

如果 output.library 未設(shè)置莱革,但是 output.libraryTarget 被設(shè)置為var以外的值,則導(dǎo)出對象的每個屬性都被復(fù)制(除了 amd讹开,commonjs2umd)盅视。

output.path

絕對路徑作為導(dǎo)出目錄(必選項)。

[hash] 被編譯的 hash 替換旦万。

config.js

output: {
    path: "/home/proj/public/assets",
    publicPath: "/assets/"
}

index.html

<head>
  <link href="/assets/spinner.gif"/>
</head>

接下來是一個更復(fù)雜的例子闹击,來說明對資源使用 CDN 和 hash。

config.js

output: {
    path: "/home/proj/cdn/assets/[hash]",
    publicPath: "http://cdn.example.com/assets/[hash]/"
}

注意: 在編譯時不知道最終輸出文件的publicPath的情況下成艘,publicPath可以留空赏半,并且在入口點文件運行時動態(tài)設(shè)置。如果你在編譯時不知道publicPath淆两,你可以先忽略它断箫,并且在入口點設(shè)置 __webpack_public_path__

 __webpack_public_path__ = myRuntimePublicPath

// 其他的應(yīng)用程序入口

output.sourceMapFilename

JavaScript 文件 SourceMap 的文件名秋冰。它們在output.path目錄中仲义。

[file] 被 JavaScript 文件的文件名替換。

[id] 被 chunk 的 id 替換。

[hash] 被編譯(compilation)的 hash 替換埃撵。

默認(rèn)值: "[file].map"

下一篇:加載器

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赵颅,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子暂刘,更是在濱河造成了極大的恐慌饺谬,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鸳惯,死亡現(xiàn)場離奇詭異商蕴,居然都是意外死亡,警方通過查閱死者的電腦和手機芝发,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進店門绪商,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人辅鲸,你說我怎么就攤上這事格郁。” “怎么了独悴?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵例书,是天一觀的道長。 經(jīng)常有香客問我刻炒,道長决采,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任坟奥,我火速辦了婚禮树瞭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘爱谁。我一直安慰自己晒喷,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布访敌。 她就那樣靜靜地躺著凉敲,像睡著了一般。 火紅的嫁衣襯著肌膚如雪寺旺。 梳的紋絲不亂的頭發(fā)上爷抓,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天,我揣著相機與錄音阻塑,去河邊找鬼蓝撇。 笑死,一個胖子當(dāng)著我的面吹牛叮姑,可吹牛的內(nèi)容都是我干的唉地。 我是一名探鬼主播,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼传透,長吁一口氣:“原來是場噩夢啊……” “哼耘沼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起朱盐,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤群嗤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后兵琳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體狂秘,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年躯肌,在試婚紗的時候發(fā)現(xiàn)自己被綠了者春。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡清女,死狀恐怖钱烟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嫡丙,我是刑警寧澤拴袭,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站曙博,受9級特大地震影響拥刻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜父泳,卻給世界環(huán)境...
    茶點故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一般哼、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧尘吗,春花似錦逝她、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至擒贸,卻和暖如春臀晃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背介劫。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工徽惋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人座韵。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓险绘,卻偏偏與公主長得像踢京,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子宦棺,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,876評論 2 361

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

  • GitChat技術(shù)雜談 前言 本文較長瓣距,為了節(jié)省你的閱讀時間,在文前列寫作思路如下: 什么是 webpack代咸,它要...
    蕭玄辭閱讀 12,698評論 7 110
  • publicPath指定了一個在瀏覽器中被引用的URL地址蹈丸。 對于使用 和 加載器,當(dāng)文件路徑不同于他們的本地磁盤...
    飛呀飛哥閱讀 1,704評論 0 0
  • 原文地址:https://webpack.js.org/concepts/output/翻譯:xiyoki Out...
    前端xiyoki閱讀 894評論 0 0
  • 前言 webpack2和vue2已經(jīng)不是新鮮東西了呐芥,滿大街的文章在講解webpack和vue逻杖,但是很多內(nèi)容寫的不是...
    技術(shù)宅小青年閱讀 6,552評論 4 43
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)思瘟,斷路器荸百,智...
    卡卡羅2017閱讀 134,716評論 18 139