vue-cli3配置多項(xiàng)目并按項(xiàng)目分別實(shí)現(xiàn)打包
vue-cli3配置多項(xiàng)目并按項(xiàng)目分別打包
demo地址:https://github.com/lmy01/vue-multipage
本次項(xiàng)目由于分為客戶端和客服端,第一反應(yīng)便是在vue中構(gòu)建多頁(yè)面。
項(xiàng)目結(jié)構(gòu)
這里主要講解下面所標(biāo)文件的用處

vue.config.js相關(guān)配置

配置好之后,運(yùn)行npm run build,項(xiàng)目被打包到dist文件夾下,結(jié)果如下圖:

可以看出不同項(xiàng)目的資源都會(huì)打包到了一起,但這不是我想要的結(jié)果,那么接下來(lái)只需要修改一下vue.config.js配置,即可使打包的文件按照項(xiàng)目進(jìn)行分離。

let projectName = process.argv[3]
let glob = require('glob')
function getEntry() {
let entries = {}
if (process.env.NODE_ENV == 'production') {
entries = {
index: {
// page的入口
entry: 'src/views/' + projectName + '/'+projectName+'.js',
// 模板來(lái)源
template: 'public/'+projectName+'.html',
// 在 dist/index.html 的輸出
filename: 'index.html',
title: 'CIMS--'+projectName,
chunks: ['chunk-vendors', 'chunk-common', 'index']
}
}
} else {
let items = glob.sync( './src/views/*/*.js')
for (let i in items) {
let filepath = items[i]
let fileList = filepath.split('/');
let fileName = fileList[fileList.length-2];
entries[fileName] = {
entry: `src/views/${fileName}/${fileName}.js`,
// 模板來(lái)源
template: `public/${fileName}.html`,
// 在 dist/index.html 的輸出
filename: `${fileName}.html`,
title:`CIMS--${fileName}`,
// 提取出來(lái)的通用 chunk 和 vendor chunk。
chunks: ['chunk-vendors', 'chunk-common', fileName]
}
}
}
return entries
}
let pages = getEntry()
module.exports = {
outputDir: 'dist/' + projectName,
productionSourceMap: false,
pages:pages,
}
注意
這時(shí)候再打包需要逐個(gè)對(duì)項(xiàng)目進(jìn)行打包,npm run build client npm run build console
下面就是打包后的每個(gè)項(xiàng)目文件夾下的文件。

但是我們發(fā)現(xiàn)public里面的模板文件也被打包進(jìn)來(lái)了,這是因?yàn)閜ublic是專門存放靜態(tài)文件的,打包的時(shí)候會(huì)把public里的內(nèi)容原樣輸出到打包后的文件夾中,如果我們不想讓他打包進(jìn)去,那么就把模板文件從public文件夾中拿出來(lái),我們?cè)陧?xiàng)目根目錄下重新建一個(gè)文件夾(/html),用來(lái)存放這兩個(gè)模板文件。

最后一步
把vue.config.js配置里的模板文件路徑修改一下。

運(yùn)行npm run build client 和 npm run build console,發(fā)現(xiàn)原來(lái)的模板文件沒(méi)有了。

補(bǔ)充:開(kāi)發(fā)環(huán)境如何進(jìn)入不同項(xiàng)目環(huán)境
npm run dev 后,瀏覽器會(huì)打開(kāi)一個(gè)頁(yè)面并提示找不到路徑

這是因?yàn)闆](méi)有進(jìn)入到具體某個(gè)項(xiàng)目環(huán)境,這時(shí)只需要再路徑后面加上/項(xiàng)目名即可打開(kāi)指定項(xiàng)目,例如

這時(shí)回車后,會(huì)進(jìn)入到該項(xiàng)目的路由配置的’’/’'頁(yè)面中。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue導(dǎo)出excel的兩個(gè)常用方式介紹與對(duì)比
這篇文章主要為大家詳細(xì)介紹了Vue導(dǎo)出excel的兩個(gè)常用方式,分別為前端vue+XLSX導(dǎo)出excel和vue+后端POI?導(dǎo)出excel,感興趣的小伙伴可以了解下2025-01-01
vue中實(shí)現(xiàn)頁(yè)面刷新以及局部刷新的方法
這篇文章主要給大家介紹了關(guān)于vue中實(shí)現(xiàn)頁(yè)面刷新以及局部刷新的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-01-01
Vue中如何進(jìn)行數(shù)據(jù)響應(yīng)式更新
Vue是一款流行的JavaScript框架,它提供了數(shù)據(jù)響應(yīng)式更新的能力,可以讓我們輕松地更新數(shù)據(jù),并自動(dòng)更新視圖,本文將介紹Vue中如何進(jìn)行數(shù)據(jù)響應(yīng)式更新,包括使用Vue的響應(yīng)式系統(tǒng)、使用計(jì)算屬性和使用Vue的watcher,需要的朋友可以參考下2023-06-06
vue/cli?配置動(dòng)態(tài)代理無(wú)需重啟服務(wù)的操作方法
vue-cli是vue.js的腳手架,用于自動(dòng)生成vue.js+webpack的項(xiàng)目模板,分為vue?init?webpack-simple?項(xiàng)目名和vue?init?webpack?項(xiàng)目名兩種,這篇文章主要介紹了vue/cli?配置動(dòng)態(tài)代理,無(wú)需重啟服務(wù),需要的朋友可以參考下2022-05-05
純前端使用Vue3上傳文件到minio文件服務(wù)器(粘貼可直接用)
vue是目前最流行的前端框架,下面這篇文章主要給大家介紹了關(guān)于純前端使用Vue3上傳文件到minio文件服務(wù)器的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-04-04
vue 根據(jù)選擇的月份動(dòng)態(tài)展示日期對(duì)應(yīng)的星期幾
這篇文章主要介紹了vue 如何根據(jù)選擇的月份動(dòng)態(tài)展示日期對(duì)應(yīng)的星期幾,幫助大家更好的利用vue框架處理日期需求,感興趣的朋友可以了解下2021-02-02

