詳解如何配置vue-cli3.0的vue.config.js
本文介紹了如何配置vue-cli3.0的vue.config.js,分享給大家,具體如下:
vue-cli 3 英文文檔
vue-cli 3 中文文檔
webpack 4 plugins
webpack-chain
TLDR
vue-cli 3 與 2 版本有很大區(qū)別
- vue-cli 3 的 github 倉(cāng)庫(kù)由原有獨(dú)立的 github 倉(cāng)庫(kù)遷移到了 vue 項(xiàng)目下
- vue-cli 3 的項(xiàng)目架構(gòu)完全拋棄了 vue-cli 2 的原有架構(gòu),3 的設(shè)計(jì)更加抽象和簡(jiǎn)潔(此處后續(xù)可以詳細(xì)介紹)
- vue-cli 3 是基于 webpack 4 打造,vue-cli 2 還是 webapck 3
- vue-cli 3 的設(shè)計(jì)原則是“0配置”
- vue-cli 3 提供了 vue ui 命令,提供了可視化配置,更加人性化
由于 vue-cli 3 也學(xué)習(xí)了 rollup 的零配置思路,所以項(xiàng)目初始化后,沒(méi)有了以前熟悉的 build 目錄,也就沒(méi)有了 webpack.base.config.js、webpack.dev.config.js 、webpack.prod.config.js 等配置文件。
那么,我們?cè)撊绾稳ヅ渲米约旱捻?xiàng)目了?
其實(shí)這一切都是因?yàn)?vue-cli 3 的項(xiàng)目初始化,幫開(kāi)發(fā)者已經(jīng)解決了 80% ,甚至絕大部分情形下的 webpack 配置。
上述功能就是由 @vue/cli-service 依賴(lài)去處理,當(dāng)你打開(kāi) node_modules 目錄下 @vue 中的 cli-service 看一眼,是不是找到了熟悉的感覺(jué)?
說(shuō)了這么多,開(kāi)發(fā)者在實(shí)際開(kāi)發(fā)過(guò)程中,肯定還有需要自己去修改配置的地方,那么,該怎么做了?
這點(diǎn)就需要在項(xiàng)目根目錄下手動(dòng)新建一個(gè) vue.config.js,此處參考我提供的一個(gè)基礎(chǔ)模板 [[vue.config.js]]
所以現(xiàn)在所有的問(wèn)題都集中在了--- 我到底要怎么樣去修改這個(gè)配置文件?
一些簡(jiǎn)單的配置,比如多頁(yè)面、接口代理,大家可以自己去看下官方 doc ,文章最上面有提供。
如果需要改動(dòng)原本 webpack 的配置,該怎么做了?
因?yàn)?vue-cli 3 中的 cli-service 對(duì) webpack 4 引入了 webpack-chain 插件,同時(shí)對(duì)配置進(jìn)行了高度抽象化,所以開(kāi)發(fā)者想隨心所欲的修改配置,操作方式就比以前更加難。在我的親身實(shí)踐下,總結(jié)了幾點(diǎn),供大家參考:
首先,修改點(diǎn)主要位于 vue.config.js 中的
configureWebpack: (config) => { // 簡(jiǎn)單/基礎(chǔ)配置,比如引入一個(gè)新插件 },
chainWebpack: (config) => { // 鏈?zhǔn)脚渲? }
loaderOptions: { css: { // options here will be passed to css-loader }, postcss: { // options here will be passed to postcss-loader } }
具體操作可以看文章最上面的鏈接,此處不再贅述。
核心一點(diǎn)就是: cmd 中敲 vue inspect > output.js , 這樣我們會(huì)得到一份最終生效的 webpack 配置信息,省去了你自己去看 cli-service 源碼。
然后,我舉個(gè)栗子:
我的項(xiàng)目中,需要修改 eslint 的配置,讓它不去檢測(cè)我項(xiàng)目下的 src/lib 目錄,因?yàn)檫@里是外部庫(kù)文件(其實(shí)此處也可以在項(xiàng)目中直接新建一個(gè) .eslintignore文件去處理,但我這里選擇修改 webpack 文件)
第一步: vue inspect > output.js
第二步: 在 output.js 中搜索 eslint 相關(guān)配置,結(jié)果如下:
第三步: 我確定了我要修的是 exclude 配置項(xiàng)
第四步: 去 mozilla-neutrino/webpack-chain 全局搜 exclude,結(jié)果如下:
第五步: 因?yàn)?exclude 只出現(xiàn)了一次,微微一笑很傾城。但是我看到了 include,接著搜 include,結(jié)果如下:
第六步: 參考 include 的寫(xiě)法,以此類(lèi)推:
最后,我們?cè)?vue inspect > output.js 看一下,
總結(jié)一下,在多用幾次 webpack-chain 以后,相信我,你會(huì)發(fā)現(xiàn)很多規(guī)律,vue-cli 3 也就很簡(jiǎn)單啦。
后記
當(dāng)你準(zhǔn)備著手一個(gè)新的項(xiàng)目的時(shí)候,請(qǐng)事先想清楚這個(gè)項(xiàng)目的架構(gòu)以及用到的ui組件等等
比如我們的項(xiàng)目
1. 使用vant UI組件
2. 封裝axios服務(wù)
3. 使用路由拆分(基于history)
4. 路由切換動(dòng)畫(huà)
。。。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue使用keep-alive后從部分頁(yè)面進(jìn)入不緩存示例詳解
這篇文章主要給大家介紹了關(guān)于vue使用keep-alive后從部分頁(yè)面進(jìn)入不緩存的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用vue具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-03-03vue中{__ob__: observer}對(duì)象轉(zhuǎn)化為數(shù)組進(jìn)行遍歷方式
這篇文章主要介紹了vue中{__ob__: observer}對(duì)象轉(zhuǎn)化為數(shù)組進(jìn)行遍歷方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10vue中使用moment設(shè)置倒計(jì)時(shí)的方法
這篇文章給大家介紹了vue中使用moment設(shè)置倒計(jì)時(shí)的方法,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-02-02vue基礎(chǔ)之事件簡(jiǎn)寫(xiě)、事件對(duì)象、冒泡、默認(rèn)行為、鍵盤(pán)事件實(shí)例分析
這篇文章主要介紹了vue基礎(chǔ)之事件簡(jiǎn)寫(xiě)、事件對(duì)象、冒泡、默認(rèn)行為、鍵盤(pán)事件,結(jié)合實(shí)例形式分析了vue.js事件簡(jiǎn)寫(xiě)、冒泡及阻止冒泡等相關(guān)操作技巧,需要的朋友可以參考下2019-03-03