vue.config.js 配置

<meta charset="utf-8">

vue-config-js配置參考

vue-cli3 腳手架搭建完成后,項目目錄中沒有 vue.config.js 文件册踩,需要手動創(chuàng)建

image

創(chuàng)建vue.config.js

vue.config.js 是一個可選的配置文件桥氏,如果項目的 (和 package.json 同級的) 根目錄中存在這個文件,那么它會被 @vue/cli-service 自動加載颓屑。你也可以使用 package.json 中的 vue 字段斤寂,但是注意這種寫法需要你嚴(yán)格遵照 JSON 的格式來寫。

在根目錄中創(chuàng)建 vue.config.js

image

vue.config.js配置

這個文件應(yīng)該導(dǎo)出一個包含了選項的對象:

image

配置選項

**publicPath **

Type: string

Default: '/'

部署應(yīng)用包時的基本 URL揪惦, 用法和 webpack 本身的 output.publicPath 一致遍搞。

這個值也可以被設(shè)置為空字符串 ('') 或是相對路徑 ('./'),這樣所有的資源都會被鏈接為相對路徑器腋,這樣打出來的包可以被部署在任意路徑溪猿。

image

把開發(fā)服務(wù)器架設(shè)在根路徑,可以使用一個條件式的值:

image

outputDir

Type: string

Default: 'dist'

輸出文件目錄纫塌,當(dāng)運行 vue-cli-service build 時生成的生產(chǎn)環(huán)境構(gòu)建文件的目錄诊县。注意目標(biāo)目錄在構(gòu)建之前會被清除 (構(gòu)建時傳入 --no-clean 可關(guān)閉該行為)。

image

assetsDir

Type: string

Default: ''

放置生成的靜態(tài)資源 (js措左、css依痊、img、fonts) 的目錄怎披。

image

注:從生成的資源覆寫 filename 或 chunkFilename 時胸嘁,assetsDir 會被忽略。

indexPath

Type: string

Default: 'index.html'

指定生成的 index.html 的輸出路徑 (相對于 outputDir)凉逛。也可以是一個絕對路徑性宏。

image

filenameHashing

Type: boolean

Default: true

默認(rèn)情況下,生成的靜態(tài)資源在它們的文件名中包含了 hash 以便更好的控制緩存状飞。然而毫胜,這也要求 index 的 HTML 是被 Vue CLI 自動生成的书斜。如果你無法使用 Vue CLI 生成的 index HTML,你可以通過將這個選項設(shè)為 false 來關(guān)閉文件名哈希酵使。

image

pages

Type: Object

Default: undefined

在 multi-page(多頁)模式下構(gòu)建應(yīng)用荐吉。每個“page”應(yīng)該有一個對應(yīng)的 JavaScript 入口文件。

其值應(yīng)該是一個對象凝化,對象的 key 是入口的名字稍坯,value 是:

一個指定了 entry, template, filename, title 和 chunks 的對象 (除了 entry 之外都是可選的);

或一個指定其 entry 的字符串搓劫。

image

注:當(dāng)在 多頁應(yīng)用 模式下構(gòu)建時瞧哟,webpack 配置會包含不一樣的插件 (這時會存在多個 html-webpack-plugin 和 preload-webpack-plugin 的實例)。如果你試圖修改這些插件的選項枪向,請確認(rèn)運行 vue inspect勤揩。

lintOnSave

Type: boolean | 'error'

Default: true

是否在保存的時候使用 eslint-loader 進(jìn)行檢查。 有效的值:ture | false | "error" 當(dāng)設(shè)置為 "error" 時秘蛔,檢查出的錯誤會觸發(fā)編譯失敗陨亡。

image

runtimeCompiler

Type: boolean

Default: false

是否使用包含運行時編譯器的 Vue 構(gòu)建版本。設(shè)置為 true 后你就可以在 Vue 組件中使用 template 選項了深员,但是這會讓你的應(yīng)用額外增加 10kb 左右负蠕。

image

transpileDependencies

Type: Array<string | RegExp>

Default: []

默認(rèn)情況下 babel-loader 會忽略所有 node_modules 中的文件。如果你想要通過 Babel 顯式轉(zhuǎn)譯一個依賴倦畅,可以在這個選項中列出來遮糖。

productionSourceMap

Type: boolean

Default: true

如果你不需要生產(chǎn)環(huán)境的 source map,可以將其設(shè)置為 false 以加速生產(chǎn)環(huán)境構(gòu)建叠赐。

crossorigin

Type: string

Default: undefined

設(shè)置生成的 HTML 中 <link rel="stylesheet"> 和 <script> 標(biāo)簽的 crossorigin 屬性欲账。

integrity

Type: boolean

Default: false

在生成的 HTML 中的 <link rel="stylesheet"> 和 <script> 標(biāo)簽上啟用 Subresource Integrity (SRI)。如果你構(gòu)建后的文件是部署在 CDN 上的芭概,啟用該選項可以提供額外的安全性赛不。


Webpack相關(guān)配置

configureWebpack

Type: Object | Function

如果這個值是一個對象,則會通過 webpack-merge 合并到最終的配置中罢洲。

如果這個值是一個函數(shù)踢故,則會接收被解析的配置作為參數(shù)。該函數(shù)及可以修改配置并不返回任何東西惹苗,也可以返回一個被克隆或合并過的配置版本殿较。

chainWebpack

Type: Function

是一個函數(shù),會接收一個基于 webpack-chain 的 ChainableConfig 實例鸽粉。允許對內(nèi)部的 webpack 配置進(jìn)行更細(xì)粒度的修改斜脂。


Css相關(guān)配置

image

css.modules

Type: boolean

Default: false

默認(rèn)情況下抓艳,只有 *.module.[ext] 結(jié)尾的文件才會被視作 CSS Modules 模塊触机。設(shè)置為 true 后你就可以去掉文件名中的 .module 并將所有的 *.(css|scss|sass|less|styl(us)?) 文件視為 CSS Modules 模塊。

css.extract

Type: boolean | Object

Default: 生產(chǎn)環(huán)境下是 true,開發(fā)環(huán)境下是 false

是否將組件中的 CSS 提取至一個獨立的 CSS 文件中 (而不是動態(tài)注入到 JavaScript 中的 inline 代碼)儡首。

css.sourceMap

Type: boolean

Default: false

是否為 CSS 開啟 source map片任。設(shè)置為 true 之后可能會影響構(gòu)建的性能。

css.loaderOptions

Type: Object

Default: {}

向 CSS 相關(guān)的 loader 傳遞選項蔬胯。

支持的 loader 有:

css-loader

postcss-loader

sass-loader

less-loader

stylus-loader


devServer

Type: Object

所有 webpack-dev-server 的選項都支持对供。注意:

有些值像 host、port 和 https 可能會被命令行參數(shù)覆寫氛濒。

有些值像 publicPath 和 historyApiFallback 不應(yīng)該被修改产场,因為它們需要和開發(fā)服務(wù)器的 publicPath 同步以保障正常的工作。

devServer.proxy

Type: string | Object

如果你的前端應(yīng)用和后端 API 服務(wù)器沒有運行在同一個主機上舞竿,你需要在開發(fā)環(huán)境下將 API 請求代理到 API 服務(wù)器京景。這個問題可以通過 vue.config.js 中的 devServer.proxy 選項來配置。

image

parallel

Type: boolean

Default: require('os').cpus().length > 1

是否為 Babel 或 TypeScript 使用 thread-loader骗奖。該選項在系統(tǒng)的 CPU 有多于一個內(nèi)核時自動啟用确徙,僅作用于生產(chǎn)構(gòu)建。

pwa

Type: Object

PWA 插件傳遞選項执桌。

pluginOptions

Type: Object

這是一個不進(jìn)行任何 schema 驗證的對象鄙皇,因此它可以用來傳遞任何第三方插件選項。


// Vue.config.js 配置選項

module.exports = {

// 選項

//  基本路徑

publicPath: "./",

//  構(gòu)建時的輸出目錄

outputDir: "dist",

//  放置靜態(tài)資源的目錄

assetsDir: "static",

//  html 的輸出路徑

indexPath: "index.html",

//文件名哈希

filenameHashing: true,

//用于多頁配置仰挣,默認(rèn)是 undefined

pages: {

    index: {

        // page 的入口文件

        entry: 'src/index/main.js',

        // 模板文件

        template: 'public/index.html',

        // 在 dist/index.html 的輸出文件

        filename: 'index.html',

        // 當(dāng)使用頁面 title 選項時伴逸,

        // template 中的 title 標(biāo)簽需要是 <title><%= htmlWebpackPlugin.options.title %></title>

        title: 'Index Page',

        // 在這個頁面中包含的塊,默認(rèn)情況下會包含

        // 提取出來的通用 chunk 和 vendor chunk椎木。

        chunks: ['chunk-vendors', 'chunk-common', 'index']

    },

    // 當(dāng)使用只有入口的字符串格式時违柏,

    // 模板文件默認(rèn)是 `public/subpage.html`

    // 如果不存在,就回退到 `public/index.html`香椎。

    // 輸出文件默認(rèn)是 `subpage.html`漱竖。

    subpage: 'src/subpage/main.js'

},

//  是否在保存的時候使用 `eslint-loader` 進(jìn)行檢查。

lintOnSave: true,

//  是否使用帶有瀏覽器內(nèi)編譯器的完整構(gòu)建版本

runtimeCompiler: false,

//  babel-loader 默認(rèn)會跳過 node_modules 依賴畜伐。

transpileDependencies: [ /* string or regex */ ],

//  是否為生產(chǎn)環(huán)境構(gòu)建生成 source map馍惹?

productionSourceMap: true,

//  設(shè)置生成的 HTML 中 <link rel="stylesheet"> 和 <script> 標(biāo)簽的 crossorigin 屬性。

crossorigin: "",

//  在生成的 HTML 中的 <link rel="stylesheet"> 和 <script> 標(biāo)簽上啟用 Subresource Integrity (SRI)玛界。

integrity: false,

//  調(diào)整內(nèi)部的 webpack 配置

configureWebpack: () => {}, //(Object | Function)

chainWebpack: () => {},

// 配置 webpack-dev-server 行為万矾。

devServer: {

    open: process.platform === 'darwin',

    host: '0.0.0.0',

    port: 8080,

    https: false,

    hotOnly: false,

    // 查閱 https://github.com/vuejs/vue-docs-zh-cn/blob/master/vue-cli/cli-service.md#配置代理

    proxy: {

        '/api': {

            target: "http://app.rmsdmedia.com",

            changeOrigin: true,

            secure: false,

            pathRewrite: {

                "^/api": ""

            }

        },

        '/foo': {

            target: '<other_url>'

        }

    }, // string | Object

    before: app => {}

},

// CSS 相關(guān)選項

css: {

    // 將組件內(nèi)的 CSS 提取到一個單獨的 CSS 文件 (只用在生產(chǎn)環(huán)境中)

    // 也可以是一個傳遞給 `extract-text-webpack-plugin` 的選項對象

    extract: true,

    // 是否開啟 CSS source map?

    sourceMap: false,

    // 為預(yù)處理器的 loader 傳遞自定義選項慎框。比如傳遞給

    // Css-loader 時良狈,使用 `{ Css: { ... } }`。

    loaderOptions: {

        css: {

            // 這里的選項會傳遞給 css-loader

        },

        postcss: {

            // 這里的選項會傳遞給 postcss-loader

        }

    },

    // 為所有的 CSS 及其預(yù)處理文件開啟 CSS Modules笨枯。

    // 這個選項不會影響 `*.vue` 文件薪丁。

    modules: false

},

// 在生產(chǎn)環(huán)境下為 Babel 和 TypeScript 使用 `thread-loader`

// 在多核機器下會默認(rèn)開啟遇西。

parallel: require('os').cpus().length > 1,

// PWA 插件的選項。

// 查閱 https://github.com/vuejs/vue-docs-zh-cn/blob/master/vue-cli-plugin-pwa/README.md

pwa: {},

// 三方插件的選項

pluginOptions: {

    // ...

}

}

作者:Rising_life
鏈接:http://www.reibang.com/p/b358a91bdf2d
來源:簡書
著作權(quán)歸作者所有严嗜。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)粱檀,非商業(yè)轉(zhuǎn)載請注明出處。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末漫玄,一起剝皮案震驚了整個濱河市茄蚯,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌睦优,老刑警劉巖渗常,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異汗盘,居然都是意外死亡凳谦,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進(jìn)店門衡未,熙熙樓的掌柜王于貴愁眉苦臉地迎上來尸执,“玉大人,你說我怎么就攤上這事缓醋∪缡В” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵送粱,是天一觀的道長褪贵。 經(jīng)常有香客問我,道長抗俄,這世上最難降的妖魔是什么脆丁? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮动雹,結(jié)果婚禮上槽卫,老公的妹妹穿的比我還像新娘。我一直安慰自己胰蝠,他們只是感情好歼培,可當(dāng)我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著茸塞,像睡著了一般躲庄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上钾虐,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天噪窘,我揣著相機與錄音,去河邊找鬼效扫。 笑死倔监,一個胖子當(dāng)著我的面吹牛无切,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播丐枉,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼掘托!你這毒婦竟也來了瘦锹?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤闪盔,失蹤者是張志新(化名)和其女友劉穎弯院,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泪掀,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡听绳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了异赫。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片椅挣。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖塔拳,靈堂內(nèi)的尸體忽然破棺而出鼠证,到底是詐尸還是另有隱情,我是刑警寧澤靠抑,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布量九,位于F島的核電站,受9級特大地震影響颂碧,放射性物質(zhì)發(fā)生泄漏荠列。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一载城、第九天 我趴在偏房一處隱蔽的房頂上張望肌似。 院中可真熱鬧,春花似錦诉瓦、人聲如沸锈嫩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽呼寸。三九已至,卻和暖如春猴贰,著一層夾襖步出監(jiān)牢的瞬間对雪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工米绕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留瑟捣,地道東北人馋艺。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像迈套,于是被迫代替她去往敵國和親捐祠。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,592評論 2 353

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