亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

基于Vue-cli的一套代碼支持多個項目

 更新時間:2021年03月18日 09:28:33   作者:xieyanmei  
這篇文章主要介紹了基于Vue-cli的一套代碼支持多個項目的方案,幫助大家更好的理解和學習使用vue框架,感興趣的朋友可以了解下

應用場景

在toB端業(yè)務中,同樣的產品,客戶多多少少會要求一些定制化。從皮膚,圖片,到一些小的功能的差異。
前端總是沖在最前面需要改的。如果改動不大的話,拉個分支有增加了維護的成本,分支拉多了,如果主干有一個問題相當于copy了n份,那個滋味簡直不要太酸爽。那么,是否可以一套代碼支持多個項目呢?

前段時間,接了一個需求,技術選型是VUE,用vue-cli搭建的。一套代碼需要支持10幾家客戶,每家的皮膚,功能都有一些小的差異,主體流程大致是一樣的。在這個場景下研究了一下解決方案。

思路

總體的思路模塊化,然后在編譯的時候根據輸入命令直接組裝不同的模塊,打包出我們需要的頁面。
這個地方就有兩個問題:

1.如何劃分頁面,控制組件的顆粒度?

2.如何差異化編譯?

項目結構

同樣一個頁面,有相同的部分,也有一些不一樣的部分。vue本身的組件化思想很容易讓我們想到把頁面拆分成組件,然后把公共的提取出來,差異化的分別處理。

項目總體結構

  • build

build結構中主要是webpack的一些腳本配置

  • config

config文件主要是項目相關配置,我們常用的就是當端口沖突時配置監(jiān)聽端口,打包輸出路徑及命名等

  • src

源碼文件。

  • assets

靜態(tài)資源,一般放圖片,樣式等

  • less

樣式文件,這里分主題處理了

  • pages

頁面文件

  • router

路由

  • util

工具類

  • components

文件夾中是各個項目的自有的組件。components目錄下的是公共的組件

  • static

靜態(tài)資源,不會被webpack編譯。一般放一下外部引用文件。

webpack打包配置

如何差異化編譯?

1.cross-env使用環(huán)境變量。在編譯階段,根據編譯傳入的變量不同,編譯不同的組件。
首先,要改的是package.json的文件

"scripts": {
 "dev:gx": "cross-env BRANCH_ENV=gx node build/dev-server.js",
 "build:gx": "cross-env BRANCH_ENV=gx node build/build.js"
 },

這個時候我們編譯的時候輸入對應的命令 就可以傳入相應的環(huán)境變量。
eg:npm run dev:gx 會傳入BRANCH_ENV=gx。

2.把config/prod.env.js中注入這個環(huán)境變量

module.exports = {
 NODE_ENV: '"production"',
 API_PATH:'""',
 BRANCH_ENV: JSON.stringify(process.env.BRANCH_ENV) || '"base"',
 ignoreCsrfToken:'"false"'
}

3.webpack.base.conf.js

 resolve: {
 extensions: ['', '.js', '.vue', '.json'],
 fallback: [path.join(__dirname, '../node_modules')],
 alias: {
 'vue$': 'vue/dist/vue.common.js',
 'src': path.resolve(__dirname, '../src'),
 'assets': path.resolve(__dirname, '../src/assets/images/'+process.env.BRANCH_ENV),
 'components': path.resolve(__dirname, '../src/components'),
 'componentsDif': path.resolve(__dirname, '../src/components/'+process.env.BRANCH_ENV),
 }
 },

可以看的出,我們把編譯命令注入的環(huán)境變量在引入別名的時候用上了。比如說,假設我輸入的編譯命令是

npm run build:gx

這個時候

'assets': path.resolve(__dirname, '../src/assets/images/'+process.env.BRANCH_ENV)
//等同于
'assets': path.resolve(__dirname, '../src/assets/images/gx')

頁面引用

1.圖片引用

<img class="icon-arrow" src="~assets/arrow.png">
//根據編譯命令。圖片引用的是src/assets/images/gx/arrow.png

background: url(~assets/btn_1.png) no-repeat;

ps:用別名的時候記得要加上~號

2.組件引用

//公共組件
import ruleTitle from 'components/RuleTitle'
//差異化組件
import ruleContent from 'componentsDif/RuleContent'

總結

總而言之,核心思想就是跟進編譯命令傳入環(huán)境變量,利用環(huán)境變量和別名的配置來差異化打包。比較難的是如何控制組件的顆粒度,如何拆分組件,這個需要跟據需求的不同來實際定制。

以上就是基于Vue-cli的一套代碼支持多個項目的詳細內容,更多關于Vue-cli的一套代碼支持多個項目的資料請關注腳本之家其它相關文章!

相關文章

  • 使用vNode實現(xiàn)給列表字段打標簽

    使用vNode實現(xiàn)給列表字段打標簽

    這篇文章主要為大家介紹了使用vNode實現(xiàn)給列表字段打標簽示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • vue中如何將日期轉換為指定的格式

    vue中如何將日期轉換為指定的格式

    這篇文章主要介紹了vue中如何將日期轉換為指定的格式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Vue3 列表界面數(shù)據展示詳情

    Vue3 列表界面數(shù)據展示詳情

    這篇文章主要介紹了Vue3 列表界面數(shù)據展示,文章主要詳介紹的內容就是做的就是把打到頁面的數(shù)據,帶樣式,也就是說好看點顯示,需要的朋友可以參考一下
    2021-11-11
  • Vue插件使用方法詳情分享

    Vue插件使用方法詳情分享

    這篇文章主要介紹了Vue插件使用方法詳情分享,使用插件之前顯示定義,下文通過js插件定義展開詳細文章介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-03-03
  • vue.js實例對象+組件樹的詳細介紹

    vue.js實例對象+組件樹的詳細介紹

    這篇文章主要介紹了vue.js實例對象+組件樹的相關資料,需要的朋友可以參考下
    2017-10-10
  • Vue如何實現(xiàn)自動觸發(fā)功能

    Vue如何實現(xiàn)自動觸發(fā)功能

    這篇文章主要介紹了Vue如何實現(xiàn)自動觸發(fā)功能,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • vue-router中關于children的使用方法

    vue-router中關于children的使用方法

    這篇文章主要介紹了vue-router中關于children的使用方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 如何封裝axios form-data針對統(tǒng)一的formData入參方式

    如何封裝axios form-data針對統(tǒng)一的formData入參方式

    這篇文章主要介紹了如何封裝axios form-data針對統(tǒng)一的formData入參方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Vue?先初始化父組件再初始化子組件的方法(自定義父子組件mounted執(zhí)行順序)

    Vue?先初始化父組件再初始化子組件的方法(自定義父子組件mounted執(zhí)行順序)

    這篇文章主要介紹了Vue?先初始化父組件再初始化子組件的方法(自定義父子組件mounted執(zhí)行順序),本篇內容內容主要講述了,在使用?Konva?進行開發(fā)過程中遇到的一些問題,需要的朋友可以參考下
    2024-07-07
  • 詳解vue?Router(v3.x)?路由傳參的三種方式

    詳解vue?Router(v3.x)?路由傳參的三種方式

    vue路由傳參的使用場景一般都是應用在父路由跳轉到子路由時,攜帶參數(shù)跳轉,本文將詳細介紹vue路由傳參的三種方式,這三種傳參方式只是針對vue?Router?V3版本的,需要的朋友可以參考下
    2023-07-07

最新評論