vue cli重構多頁面腳手架實例分享
官方提供的項目生成工具vue-cli沒有對多頁面webApp的支持,但是在實際的項目中,我們需要這樣的腳手架,參考了很多大牛的方法,本文提供了一種我的單頁腳手架轉換為多頁鷹架的方案,供大家參考。不好的地方也請大家指正。
準備
使用vue-cli產生一個你需要的單頁專案鷹架,然後我們就要開始我們的改裝工程了。
重構過程
步驟一改變目錄結構
#step1 在src目錄下面新建views資料夾,然後再views資料夾下新建index資料夾
step2 將src目錄下的main.js和App.vue移到step1中的index資料夾下,並將main.js重新命名為index.js
step3 將src目錄下的router資料夾移到step1中的index資料夾下,如果不使用router可以再index.js中註解掉,我沒有使用,因為我的每個頁面不是單一頁面的應用,不必要使用路由功能
-
step4 將根目錄下的index.html檔案移到step1中的index資料夾下
步驟二修改build下的設定檔
在生產環境下會分頁打包獨有js文件,並抽取公共js,不會什麼都打包成一坨。打包後檔案目錄結構也是比較清晰。一下所有修改都在build資料夾下
step1 修改utils.js,增加兩個函數,一個用來取得頁面多入口,一個用來輸入打包後的頁面,並註入js:
var glob = require('glob') var HtmlWebpackPlugin = require('html-webpack-plugin') var PAGE_PATH = path.resolve(__dirname, '../src/views') var merge = require('webpack-merge') //多入口配置 //获取views文件夹下,每个页面下的index.js作为页面入口,故每个页面下都必须有index.js exports.entries = function() { var entryFiles = glob.sync(PAGE_PATH + '/*/index.js') var map = {}, tmp = [], pathname = ''; entryFiles.forEach((filePath) => { var filename = filePath.substring(filePath.lastIndexOf('\/') + 1, filePath.lastIndexOf('.')) tmp = filePath.split('/').splice(-4) map[tmp[2] + '/' + filename] = filePath }) return map } //多页面输出配置 //读取views文件夹下的对应每个页面的html后缀文件,然后放入数组中 //如果想要更深的定制或者修改,建议大家看一下CommonsChunkPlugin //推荐一个基础的 https://segmentfault.com/q/1010000009070061 exports.htmlPlugin = function() { let entryHtml = glob.sync(PAGE_PATH + '/*/*.html') let arr = [] entryHtml.forEach((filePath) => { let jsPath = '', tmp = []; let filename = filePath.substring(filePath.lastIndexOf('\/') + 1, filePath.lastIndexOf('.')) tmp = filePath.split('/').splice(-4) jsPath = tmp[2] + '/' + 'index' let conf = { template: filePath, filename: filename + '.html', chunks: ['manifest', 'vendors', jsPath], inject: true } if (process.env.NODE_ENV === 'production') { conf = merge(conf, { minify: { removeComments: true, collapseWhitespace: true, removeAttributeQuotes: true }, chunksSortMode: 'dependency' }) } arr.push(new HtmlWebpackPlugin(conf)) }) return arr } step2 修改webpack.base.conf.js文件配置的入口 // entry: { // app: './src/main.js' // }, entry: utils.entries(), step3 修改webpack.dev.conf.js文件的打包方法 找到下面的代码,将其注释掉: new HtmlWebpackPlugin({ filename: 'index.html', template: 'index.html', inject: true }),
在plugins這個屬性值的後面加上我們上面的方法,下面是程式碼片段:
// new HtmlWebpackPlugin({ // filename: 'index.html', // template: 'index.html', // inject: true // }), new FriendlyErrorsPlugin() ].concat(utils.htmlPlugin()) step4 修改webpack.prod.conf.js 找到下面的代码,注释掉: new HtmlWebpackPlugin({ filename: config.build.index, template: 'index.html', inject: true, minify: { removeComments: true, collapseWhitespace: true, removeAttributeQuotes: true // more options: // https://github.com/kangax/html-minifier#options-quick-reference }, // necessary to consistently work with multiple chunks via CommonsChunkPlugin chunksSortMode: 'dependency' }),
在plugins這個屬性值的後面加上我們上面的方法,下面是程式碼片段:
new CopyWebpackPlugin([{ from: path.resolve(__dirname, '../static'), to: config.build.assetsSubDirectory, ignore: ['.*'] }]) ].concat(utils.htmlPlugin())
配置完成。正常啟動項目即可。
相關推薦:
以上是vue cli重構多頁面腳手架實例分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

夸克網盤和百度網盤都是很便利的儲存工具,不少的用戶都在詢問這兩款軟體互通嗎?夸克網盤怎麼分享到百度網盤?下面就讓本站來為用戶們來仔細的介紹一下夸克網盤的文件怎麼保存到百度網盤方法吧。夸克網盤的文件怎麼保存到百度網盤方法1、想要知道怎麼把夸克網盤的文件轉到百度網盤,首先在夸克網盤上下載需要保存的文件,然後打開百度網盤客戶端後,選擇壓縮檔案要儲存的資料夾,雙擊開啟該資料夾。 2、開啟該資料夾後,點選視窗左上角區域的「上傳」。 3、在電腦中找到需要上傳的壓縮文件,點選選

1.首先我們進入到網易雲音樂中,然後在軟體首頁介面中,點選進入到歌曲的播放介面中。 2.然後在歌曲播放介面中,找到右上方的分享功能按鈕,如下圖紅框所示位置,點擊選擇分享的管道;在分享管道中,點擊底部的「分享至」選項,然後選擇第一個“微信朋友圈”,即可將內容分享至微信朋友圈。

近期,百度網盤安卓客戶端迎來了全新的8.0.0版本,這個版本不僅帶來了許多變化,還增添了許多實用功能。其中,最引人注目的便是資料夾共享功能的增強。現在,使用者可以輕鬆邀請好友加入,共同分享工作與生活中的重要文件,實現更便利的協作與分享。那麼究竟該如何分享給好友自己需要分享的文件呢,下文中本站小編就會為大家帶來詳細內容介紹,希望能幫助大家! 1)開啟百度雲APP,先點選在首頁選擇相關的資料夾,再點選介面右上角的【...】圖示;(如下圖)2)接著點選「共用成員」一欄中的【+ 】,最後在勾選所

芒果TV擁有各種類型的電影、電視劇、綜藝等資源,用戶可以在其中自由的選擇觀看。芒果tv會員不僅能夠看到全部的VIP劇而且還能夠設定最高清的畫質,幫助用戶爽快看劇,下面小編就給大家帶來一些芒果tv免費的會員帳號供用戶們使用,趕緊來看一看吧。芒果tv最新會員帳號免費分享2023:注意:都是收集的最新會員帳號,可以直接登入使用,不要隨意的修改密碼。帳號:13842025699密碼:qds373帳號:15804882888密碼:evr6982帳號:13330925667密碼:jgqae帳號:1703

win7企業版啟動金鑰有沒有最新的?如果你安裝的是官方win7企業版,會提示用windows7企業版產品金鑰來激活,否則不能正常使用。所以小編接下來跟大家分享一些win7企業版啟動密碼,大家一起來看看吧。 Q3VMJ-TMJ3M-99RF9-CVPJ3-Q7VF3KGMPT-GQ6XF-DM3VM-HW6PR-DX9G8MT39G-9HYXX-J3V3Q-RPXJB-RQ6D79JBBV-7Q7P7-CTDB7-KYBKG-X8HHCP72QK-2Y3B8-YDHDV-29DQB-QKWWM6JQ

標題:解決Discuz微信分享無法顯示的問題,需要具體程式碼範例隨著行動網路的發展,微信成為了人們日常生活中不可或缺的一部分。在網站開發中,為了提升使用者體驗和擴大網站的曝光度,許多網站會整合微信分享功能,讓使用者能夠輕鬆分享網站的內容到朋友圈或微信群組。然而,有時在使用Discuz等開源論壇系統時,會遇到微信分享無法顯示的問題,這給使用者體驗帶來了一定的困

職場人士對PPT製作不會太陌生吧,因為不管是年終總結還是述職報告很多公司都要求用PPT的形式來體現。此時就遇到一個問題,那就是如何分享PPT呢?不要急,下面小編帶大家了解分享PPT的方法。 1.先選擇編輯好的PPT,點選左上角的儲存(如果使用的是WPS,可以先點選登入)。 2.接著點擊下圖選單列的分享圖標,如下圖所示。 3、然後會彈出下圖的分享介面,可以看到會出現一個分享鏈接,點擊發送鏈接即可分享。 4.還可以點擊下圖左下角的“允許好友編輯”,這樣好友也可以點擊編輯這個PPT了。 5.如果需要給P

win7系統如何分享wifi熱點?我們電腦連接了網路之後,也是可以進行無線網路的分享的。很多用戶想要將自己電腦的網路分享到手機上來使用。很多朋友都不知道怎麼詳細操作,小編下面整理了win7系統如何分享wifi熱點的操作方法步驟,如果你有興趣的話,跟著小編一起往下看看吧! win7系統如何分享wifi熱點的操作方法步驟 1、要想開啟wifi熱點,首先得要有無線網卡,筆記本是有自帶的,pc的話可以購買一個隨身wifi來分享wifi,這裡就不敘述了。先按下鍵盤上的windows鍵開啟開始菜
