多項(xiàng)目打包框架

背景

需求方有很多小項(xiàng)目劝贸,都是單個頁面蓖谢,如果每個工程單獨(dú)開設(shè)一個工程,資源有點(diǎn)浪費(fèi)捏膨,也不利于開發(fā)人員代碼統(tǒng)一管理維護(hù)却汉。

故提出解決方案:多項(xiàng)目單獨(dú)打包驯妄。一個工程里面有多個單獨(dú)的小項(xiàng)目,公共資源共用合砂,每個項(xiàng)目配置單獨(dú)的入口青扔,使用webpack打包單個項(xiàng)目。

工程改造

目前我們的項(xiàng)目工程是使用vue-cli4構(gòu)建的翩伪。在這基礎(chǔ)上微猖,需要進(jìn)行工程改造
思路:
1、移除不需要的項(xiàng)目文件缘屹,使其最簡單化凛剥。
2、在項(xiàng)目src目錄下新建projects目錄轻姿,用來放項(xiàng)目文件
3犁珠、給每一個項(xiàng)目配置main.js路口文件,配置路由文件互亮,以及App.vue文件
4犁享、配置打包文件vue.config.js
5、配置package.json 打包指令
6豹休、運(yùn)行打包部署測試效果

打包文件配置

目的是單獨(dú)打包每一個小項(xiàng)目
需要配置:
1炊昆、項(xiàng)目入口
2、打包輸出路徑
3、devServer服務(wù)配置
4凤巨、項(xiàng)目的名稱

項(xiàng)目入口配置

有兩種方式:
1视乐、配置pages

pages: {
      index: {
        entry: "src/projects/projectA/main.js",
        template: "public/index.html",
        filename: "index.html"
      }
    }

如果配置中有preload 的配置,那么需要修改相關(guān)的配置敢茁,不然會運(yùn)行報錯

config.plugin('preload-index').tap(() => [
      {
        rel: 'preload',
        // to ignore runtime.js
        // https://github.com/vuejs/vue-cli/blob/dev/packages/@vue/cli-service/lib/config/app.js#L171
        fileBlacklist: [/\.map$/, /hot-update\.js$/, /runtime\..*\.js$/],
        include: 'initial'
      }
    ])

2佑淀、修改webpack默認(rèn)的入口

    config.entry.app = './src/main.js' // 默認(rèn)

配置輸出路徑

  outputDir: 'dist/' +'projectA' + '/',

devServer服務(wù)配置

devServer: {
      port: 7001, // 端口地址
      open: false, // 是否自動打開瀏覽器頁面
      host: '0.0.0.0', // 指定使用一個 host,默認(rèn)是 localhost
      https: false, // 使用https提供服務(wù)
      disableHostCheck: true
    }

項(xiàng)目的名稱配置

    config.name = 'projectA'

綜合上述配置
可輸出配置文件projectConfig.js

  projectA: {
    name: 'projectA',
    entry: './src/projects/projectA/main.js',
    devServer: {
      port: 7001, // 端口地址
      open: false, // 是否自動打開瀏覽器頁面
      host: '0.0.0.0', // 指定使用一個 host卷要,默認(rèn)是 localhost
      https: false, // 使用https提供服務(wù)
      disableHostCheck: true
    }
  }

vue.config.js 完整配置

'use strict'
const projectsConfig = require('./config/projectsConfig.js')
const projectName = process.env.PROJECT_NAME

module.exports = {
  devServer: {
    ...projectsConfig[projectName].devServer
  },
  publicPath: './',
  outputDir: 'dist/' + projectName + '/',
  assetsDir: 'static',
  configureWebpack(config) {
    config.entry.app = projectsConfig[projectName].entry
    const name = projectsConfig[projectName].name || 'Admin'
    const resolve = {
      alias: {
        '@': path.join(__dirname, 'src')
      }
    }
    return { name, resolve }
  }
// 其他配置根據(jù)需求自行配置

配置打包指令

package.json
安裝cross-env

npm install cross-env

配置打包項(xiàng)目名稱PROJECT_NAME

"dev:projectA": "cross-env PROJECT_NAME=projectA vue-cli-service serve ",
"build:projectA": "cross-env PROJECT_NAME=projectA vue-cli-service build --mode production-dev",

效果展示

運(yùn)行

npm run build:projectA
打包文件效果
npm run dev:projectA

項(xiàng)目是采用iframe嵌套展示的


頁面效果
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末渣聚,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子僧叉,更是在濱河造成了極大的恐慌奕枝,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瓶堕,死亡現(xiàn)場離奇詭異隘道,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)郎笆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進(jìn)店門谭梗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人宛蚓,你說我怎么就攤上這事激捏。” “怎么了凄吏?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵远舅,是天一觀的道長。 經(jīng)常有香客問我痕钢,道長图柏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任任连,我火速辦了婚禮蚤吹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘随抠。我一直安慰自己裁着,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布拱她。 她就那樣靜靜地躺著跨算,像睡著了一般。 火紅的嫁衣襯著肌膚如雪椭懊。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天,我揣著相機(jī)與錄音氧猬,去河邊找鬼背犯。 笑死,一個胖子當(dāng)著我的面吹牛盅抚,可吹牛的內(nèi)容都是我干的漠魏。 我是一名探鬼主播,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼妄均,長吁一口氣:“原來是場噩夢啊……” “哼柱锹!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起丰包,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤禁熏,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后邑彪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瞧毙,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年寄症,在試婚紗的時候發(fā)現(xiàn)自己被綠了宙彪。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡有巧,死狀恐怖释漆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情篮迎,我是刑警寧澤男图,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站柑潦,受9級特大地震影響享言,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜渗鬼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一览露、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧譬胎,春花似錦差牛、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至镐侯,卻和暖如春侦讨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工韵卤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留骗污,地道東北人。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓沈条,卻偏偏與公主長得像需忿,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蜡歹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,554評論 2 349

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