vue-cli擴(kuò)展多模塊打包的示例代碼
場(chǎng)景
在實(shí)際的項(xiàng)目開(kāi)發(fā)中會(huì)出現(xiàn)這樣的場(chǎng)景,項(xiàng)目中需要多個(gè)模塊(單頁(yè)或者多頁(yè)應(yīng)用)配合使用的情況,而vue-cli默認(rèn)只提供了單入口打包,所以就想到對(duì)vue-cli進(jìn)行擴(kuò)展
實(shí)現(xiàn)
首先得知道webpack是提供了多入口打包,那就可以從這里開(kāi)始改造
新建build/entry.js
const path = require('path') const fs = require('fs') const moduleDir = path.resolve(__dirname, '../src/modules') let entryObj = {} let moduleItems = fs.readdirSync(moduleDir) moduleItems.forEach(item => { entryObj[`${item}`] = `./src/modules/${item}/main.js` }) module.exports = entryObj
這里用到了nodejs的fs和path模塊,可以查看文檔http://nodejs.cn/api/fs.html,http://nodejs.cn/api/path.html,可以根據(jù)自己的項(xiàng)目配置更改,此處是以src/modules/文件夾下的目錄作為模塊,每個(gè)模塊中都有一個(gè)main.js作為入口文件
修改build/webpack.base.conf.js中entry
const entryObj = require('./entry') module.exports = { entry: entryObj }
接下來(lái)就是如何將打包好的文件注入到html中,這里利用html-webpack-plugin插件來(lái)解決這個(gè)問(wèn)題,首先你需要有一個(gè)html的模板文件,然后在webpack配置中更改默認(rèn)的html-webpack-plugin插件配置
添加build/plugins.js
const HtmlWebpackPlugin = require('html-webpack-plugin') let configPlugins = [] Object.keys(entryObj).forEach(item => { configPlugins.push(new HtmlWebpackPlugin( { filename: '../dist/' + item + '.html', template: path.resolve(__dirname, '../index.html'), chunks: [item] } )) }) module.exports = configPlugins
修改build/webpack.dev.conf.js配置
module.exports = { plugins: configPlugins }
實(shí)戰(zhàn)
vue移動(dòng)web通用腳手架
github地址: https://github.com/GavinZhuLei/vue-mobile
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 詳解Vue 中 extend 、component 、mixins 、extends 的區(qū)別
- 詳解vue mixins和extends的巧妙用法
- 詳解VUE 對(duì)element-ui中的ElTableColumn擴(kuò)展
- vue組件實(shí)現(xiàn)可搜索下拉框擴(kuò)展
- 詳解Vue.js iview實(shí)現(xiàn)樹(shù)形權(quán)限表(可擴(kuò)展表)
- vue 右鍵菜單插件 簡(jiǎn)單、可擴(kuò)展、樣式自定義的右鍵菜單
- VUE2.0+ElementUI2.0表格el-table實(shí)現(xiàn)表頭擴(kuò)展el-tooltip
- 詳解Vue2.0組件的繼承與擴(kuò)展
- 使用Vue開(kāi)發(fā)自己的Chrome擴(kuò)展程序過(guò)程詳解
- 詳解如何寫(xiě)出一個(gè)利于擴(kuò)展的vue路由配置
- Vue Extends 擴(kuò)展選項(xiàng)用法完整實(shí)例
相關(guān)文章
Element?UI?Dialog對(duì)話框改成固定高度超出部分滾動(dòng)條滾動(dòng)
這篇文章主要給大家介紹了關(guān)于Element?UI?Dialog對(duì)話框改成固定高度超出部分滾動(dòng)條滾動(dòng)的相關(guān)資料,el-dialog默認(rèn)高度是自由拉伸的,當(dāng)內(nèi)容超過(guò)屏幕時(shí)會(huì)出現(xiàn)滾動(dòng)條,按鈕和標(biāo)題都會(huì)隨著滾動(dòng),用戶體驗(yàn)不好,需要的朋友可以參考下2024-05-05Vue監(jiān)聽(tīng)鍵盤(pán)事件實(shí)用示例
我們?cè)陂_(kāi)發(fā)過(guò)程中經(jīng)常需要監(jiān)聽(tīng)用戶的輸入,比如用戶的點(diǎn)擊事件、拖拽事件、鍵盤(pán)事件等等,這篇文章主要給大家介紹了關(guān)于Vue監(jiān)聽(tīng)鍵盤(pán)事件實(shí)用示例的相關(guān)資料,需要的朋友可以參考下2023-11-11Vue進(jìn)階之CodeMirror的應(yīng)用小結(jié)
CodeMirror支持在線編輯代碼,風(fēng)格包括js, java, php, c++等等100多種語(yǔ)言,下面這篇文章主要來(lái)和大家講講CodeMirror的應(yīng)用,感興趣的可以了解一下2023-06-06Vue3+axios+Mock.js實(shí)現(xiàn)登錄功能的示例代碼
本文主要介紹了Vue3+axios+Mock.js實(shí)現(xiàn)登錄功能的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05el-date-picker 選擇日期范圍只保存左側(cè)日期面板的實(shí)現(xiàn)代碼
接到這樣的需求,日期篩選,但限制只能選擇同一個(gè)月的數(shù)據(jù),故此應(yīng)該去掉右側(cè)月份面板,今天通過(guò)本文給大家分享el-date-picker 選擇日期范圍只保存左側(cè)日期面板的實(shí)現(xiàn)代碼,感興趣的朋友一起看看吧2024-06-06vue在.js文件中如何進(jìn)行路由跳轉(zhuǎn)
這篇文章主要介紹了vue在.js文件中如何進(jìn)行路由跳轉(zhuǎn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12Vue form表單動(dòng)態(tài)添加組件實(shí)戰(zhàn)案例
這篇文章主要介紹了Vue form表單動(dòng)態(tài)添加組件實(shí)戰(zhàn)案例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09使用vue制作探探滑動(dòng)堆疊組件的實(shí)例代碼
探探的堆疊滑動(dòng)組件起到了關(guān)鍵的作用,下面就來(lái)看看如何用vue寫(xiě)一個(gè)探探的堆疊組件,感興趣的朋友一起看看吧2018-03-03