這篇文章主要介紹“如何在vue-cli3項(xiàng)目中使用webpack4實(shí)現(xiàn)換膚功能”,在日常操作中,相信很多人在如何在vue-cli3項(xiàng)目中使用webpack4實(shí)現(xiàn)換膚功能問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”如何在vue-cli3項(xiàng)目中使用webpack4實(shí)現(xiàn)換膚功能”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
10年積累的成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有海州免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
首先我們用vue-element-admin
這個(gè)開(kāi)源的后臺(tái)管理系統(tǒng)項(xiàng)目來(lái)做demo演示,為了便于做二次開(kāi)發(fā),下載vue-admin-template來(lái)開(kāi)發(fā)。
// 從github下載vue-admin-template clone https://github.com/PanJiaChen/vue-admin-template.git cd vue-admin-template npm install npm run dev
運(yùn)行成功后的效果
安裝style-loader處理器
因?yàn)?code>vue-admin-template項(xiàng)目是添加過(guò)sass-loader
依賴的,所以不用我們?cè)俅伟惭b,在上一步就已經(jīng)安裝好了。
npm install style-loader --save-dev
創(chuàng)建主題文件
在src目錄下創(chuàng)建theme-chalk、theme-light
主題文件夾
在兩個(gè)主題目錄下創(chuàng)建index.useable.scss文件 ?
在index.useable.scss
中寫(xiě)入樣式
// theme-chalk/index.useable.scss body { background: red; } // theme-light/index.useable.scss body { background: green; }
到此,我們的主題樣式都已經(jīng)建好了,現(xiàn)在要將主題應(yīng)用上去
在vue.config.js中增加style-loader/useable
vue-cli2根vue-cli3的配置區(qū)別還是挺大的,我在配置的過(guò)程中遇到很多坑,因?yàn)関ue-cli3沒(méi)有了webpack.config.js文件,我們?cè)谂渲脀ebpack的時(shí)候無(wú)法根據(jù)老文檔來(lái)配置,需要熟悉cli3的webpack-chain來(lái)鏈?zhǔn)叫薷呐渲?,但是文檔很少,配置的過(guò)程中異常困難。
在配置文件中chainWebpack鏈?zhǔn)叫薷膚ebpack配置就能成功應(yīng)用loader了,話不多說(shuō),直接上代碼,
// 換膚loader const scss = config.module.rule('scss').toConfig(); const useable = { ...scss.oneOf[3], test: /\.useable.scss$/ }; useable.use = [...useable.use]; useable.use[0] = { loader: 'style-loader/useable' }; config.module.rule('scss').merge({ oneOf: [useable] });
使用主題
在準(zhǔn)備工作都做好后,接下來(lái)我們開(kāi)始使用主題樣式。
之前說(shuō)的為什么要用style-loader
來(lái)做換膚呢?是因?yàn)閟tyle-loader提供了useable這一API,可動(dòng)態(tài)加載刪除link文件。具體詳情請(qǐng)自行去看看style-loader。
在src目錄下,創(chuàng)建theme.js文件
const cache = {}; const themeAction = { chalk() { if (!cache.chalk) { cache.chalk = import('./styles/theme-chalk/index.useable.scss'); } return cache.chalk; }, light() { if (!cache.light) { cache.light = import('./styles/theme-light/index.useable.scss'); } return cache.light; } }; let current = null; async function setTheme(theme) { if (themeAction[theme]) { const style = await themeAction[theme](); if (current) { current.unref(); } style.ref(); current = style; } } window.setTheme = setTheme; export default setTheme;
在main.js中,引入theme.js。
import setTheme from './theme' // 使用主題 setTheme('chalk')
重啟服務(wù),查看效果
到此,關(guān)于“如何在vue-cli3項(xiàng)目中使用webpack4實(shí)現(xiàn)換膚功能”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!
名稱欄目:如何在vue-cli3項(xiàng)目中使用webpack4實(shí)現(xiàn)換膚功能
分享URL:http://muchs.cn/article48/piodhp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、關(guān)鍵詞優(yōu)化、微信小程序、商城網(wǎng)站、面包屑導(dǎo)航、動(dòng)態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)