成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

怎么在vue-cli3項目中使用webpack4實現(xiàn)換膚功能

本篇文章給大家分享的是有關(guān)怎么在vue-cli3項目中使用webpack4實現(xiàn)換膚功能,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

創(chuàng)新互聯(lián)建站專注于霍山企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城系統(tǒng)網(wǎng)站開發(fā)?;羯骄W(wǎng)站建設(shè)公司,為霍山等地區(qū)提供建站服務(wù)。全流程按需開發(fā),專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)

首先我們用vue-element-admin這個開源的后臺管理系統(tǒng)項目來做demo演示,為了便于做二次開發(fā),下載vue-admin-template來開發(fā)。

// 從github下載vue-admin-template
clone https://github.com/PanJiaChen/vue-admin-template.git
cd vue-admin-template
npm install
npm run dev

運行成功后的效果

怎么在vue-cli3項目中使用webpack4實現(xiàn)換膚功能

安裝style-loader處理器

因為vue-admin-template項目是添加過sass-loader依賴的,所以不用我們再次安裝,在上一步就已經(jīng)安裝好了。

npm install style-loader --save-dev

創(chuàng)建主題文件

在src目錄下創(chuàng)建theme-chalk、theme-light主題文件夾
在兩個主題目錄下創(chuàng)建index.useable.scss文件 ?

怎么在vue-cli3項目中使用webpack4實現(xiàn)換膚功能

index.useable.scss中寫入樣式

// theme-chalk/index.useable.scss
body {
  background: red; 
}
// theme-light/index.useable.scss
body {
  background: green; 
}

怎么在vue-cli3項目中使用webpack4實現(xiàn)換膚功能

到此,我們的主題樣式都已經(jīng)建好了,現(xiàn)在要將主題應(yīng)用上去

在vue.config.js中增加style-loader/useable

vue-cli2根vue-cli3的配置區(qū)別還是挺大的,我在配置的過程中遇到很多坑,因為vue-cli3沒有了webpack.config.js文件,我們在配置webpack的時候無法根據(jù)老文檔來配置,需要熟悉cli3的webpack-chain來鏈式修改配置,但是文檔很少,配置的過程中異常困難。

在配置文件中chainWebpack鏈式修改webpack配置就能成功應(yīng)用loader了,話不多說,直接上代碼,

// 換膚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] });

怎么在vue-cli3項目中使用webpack4實現(xiàn)換膚功能

使用主題

在準備工作都做好后,接下來我們開始使用主題樣式。

之前說的為什么要用style-loader來做換膚呢?是因為style-loader提供了useable這一API,可動態(tài)加載刪除link文件。具體詳情請自行去看看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ù),查看效果

怎么在vue-cli3項目中使用webpack4實現(xiàn)換膚功能

如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

以上就是怎么在vue-cli3項目中使用webpack4實現(xiàn)換膚功能,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

標題名稱:怎么在vue-cli3項目中使用webpack4實現(xiàn)換膚功能
瀏覽地址:http://jinyejixie.com/article28/posgcp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計公司ChatGPT、云服務(wù)器、移動網(wǎng)站建設(shè)、網(wǎng)站改版、電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
海丰县| 余干县| 北宁市| 滕州市| 高安市| 宁河县| 曲阜市| 鸡东县| 辽阳县| 涟水县| 辽阳县| 曲阳县| 盐池县| 筠连县| 水城县| 梓潼县| 黄石市| 元氏县| 青河县| 聂荣县| 徐州市| 左贡县| 巴彦淖尔市| 大悟县| 嘉黎县| 朝阳县| 县级市| 高清| 城口县| 清原| 涡阳县| 冷水江市| 绥化市| 嘉禾县| 师宗县| 泽州县| 南平市| 始兴县| 垫江县| 田阳县| 荣成市|