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

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

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

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

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',
// 模板來源
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`,
// 模板來源
template: `public/${fileName}.html`,
// 在 dist/index.html 的輸出
filename: `${fileName}.html`,
title:`CIMS--${fileName}`,
// 提取出來的通用 chunk 和 vendor chunk。
chunks: ['chunk-vendors', 'chunk-common', fileName]
}
}
}
return entries
}
let pages = getEntry()
module.exports = {
outputDir: 'dist/' + projectName,
productionSourceMap: false,
pages:pages,
}
注意
這時候再打包需要逐個對項目進行打包,npm run build client npm run build console
下面就是打包后的每個項目文件夾下的文件。

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

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

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

補充:開發(fā)環(huán)境如何進入不同項目環(huán)境
npm run dev 后,瀏覽器會打開一個頁面并提示找不到路徑

這是因為沒有進入到具體某個項目環(huán)境,這時只需要再路徑后面加上/項目名即可打開指定項目,例如

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

