vue-cli 3.0 自定義vue.config.js文件,多頁構(gòu)建的方法
使用自己基于vue-cli 2.X改造的前端多頁腳手架有近1年多時間了,一直沒機會升級3.0版本
開始零零碎碎開始寫一些功能,順便分享一下
const path = require('path')
const glob = require('glob')
/** 獲取多頁的入口腳本和模板 */
const getPages = (() => {
const [
globPathHtml,
globPathJs,
pages,
tempSet
] = [
['./src/modules/**/index.html', 'template'], // 入口模板正則
['./src/modules/**/main.js', 'entry'], // 入口腳本正則
Object.create(null),
new Set()
]
const getMultiPageConf = (globPath, keyName) => {
let [fileList, tempArr, modName] = [glob.sync(globPath), [], null]
if (fileList.length !== 0) {
for (let entry of fileList) {
tempArr = path.dirname(entry, path.extname(entry)).split('/')
modName = tempArr[tempArr.length - 1]
if (tempSet.has(modName)) {
Object.assign(pages[modName], { [keyName]: entry, 'filename': `${modName}.html` })
} else {
Reflect.set(pages, modName, { [keyName]: entry }) && tempSet.add(modName)
}
}
return true
} else {
if (keyName === 'template') {
throw new Error('無法獲取多頁入口模板')
} else if (keyName === 'entry') {
throw new Error('無法獲取多頁入口腳本')
} else {
throw new Error('無法獲取多頁信息')
}
}
}
try {
while (getMultiPageConf(...globPathHtml) && getMultiPageConf(...globPathJs)) return pages
} catch (err) {
console.log('獲取多頁數(shù)據(jù)錯誤:', err)
}
})()
console.log('pages: ', getPages)
打印結(jié)果:
pages: { mod1:
{ template: './src/modules/mod1/index.html',
entry: './src/modules/mod1/main.js',
filename: 'mod1.html' },
mod2:
{ template: './src/modules/mod2/index.html',
entry: './src/modules/mod2/main.js',
filename: 'mod2.html' },
mod3:
{ template: './src/modules/mod3/index.html',
entry: './src/modules/mod3/main.js',
filename: 'mod3.html' } }
使用:
/** vue.config.js */
module.exports = {
...
pages: getPages
...
}
以上這篇vue-cli 3.0 自定義vue.config.js文件,多頁構(gòu)建的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
element中async-validator異步請求驗證使用
本文主要介紹了element中async-validator異步請求驗證使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-05-05
vue路由傳參的基本實現(xiàn)方式小結(jié)【三種方式】
這篇文章主要介紹了vue路由傳參的基本實現(xiàn)方式,結(jié)合實例形式總結(jié)分析了vue.js路由傳參的三種實現(xiàn)方式,包括params顯示傳參、不顯示參數(shù)以及query顯示參數(shù)傳參,需要的朋友可以參考下2020-02-02
vue-quill-editor實現(xiàn)圖片上傳功能
這篇文章主要為大家詳細介紹了vue-quill-editor實現(xiàn)圖片上傳功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08
vue前端頁面數(shù)據(jù)加載添加loading效果的實現(xiàn)
這篇文章主要介紹了vue前端頁面數(shù)據(jù)加載添加loading效果的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07
vuex數(shù)據(jù)持久化的兩種實現(xiàn)方案
在vuex的時候刷新以后里面存儲的state就會被瀏覽器釋放掉,因為我們的state都是存儲在內(nèi)存中的,所以一刷新頁面就會把state中的數(shù)據(jù)重置,這就涉及到vue數(shù)據(jù)持久化的問題,這篇文章主要給大家介紹了關于vuex數(shù)據(jù)持久化的兩種實現(xiàn)方案,需要的朋友可以參考下2021-07-07
vue實現(xiàn)echart餅圖legend顯示百分比的方法
本文主要介紹了vue實現(xiàn)echart餅圖legend顯示百分比的方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09
使用Vue父子組件通信實現(xiàn)todolist的功能示例代碼
這篇文章主要給大家介紹了關于如何使用Vue父子組件通信實現(xiàn)todolist的功能的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Vue具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-04-04

