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)樹形權(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ò)程詳解
- 詳解如何寫出一個(gè)利于擴(kuò)展的vue路由配置
- Vue Extends 擴(kuò)展選項(xiàng)用法完整實(shí)例
相關(guān)文章
vue中實(shí)現(xiàn)Monaco Editor自定義提示功能
最近小編接到一個(gè)項(xiàng)目,需要在瀏覽器的ide中支持自定義提示功能,接下來(lái)通過(guò)本文給大家介紹在vue中實(shí)現(xiàn)Monaco Editor自定義提示功能,需要的朋友可以參考下2019-07-07
vue移動(dòng)UI框架滑動(dòng)加載數(shù)據(jù)的方法
這篇文章主要介紹了vue移動(dòng)UI框架滑動(dòng)加載的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
Vue動(dòng)態(tài)組件實(shí)現(xiàn)異常處理方法
Vue3動(dòng)態(tài)組件怎么進(jìn)行異常處理?下面本篇文章帶大家聊聊Vue3 動(dòng)態(tài)組件異常處理的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-02-02
vue項(xiàng)目中向數(shù)組添加元素的3種方式
這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目中向數(shù)組添加元素的3種方式,在Vue中添加元素到數(shù)組非常簡(jiǎn)單,文中通過(guò)代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用vue具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-10-10
詳解Vue webapp項(xiàng)目通過(guò)HBulider打包原生APP
這篇文章主要介紹了詳解Vue webapp項(xiàng)目通過(guò)HBulider打包原生APP,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
Vue基于localStorage存儲(chǔ)信息代碼實(shí)例
這篇文章主要介紹了Vue基于localStorage存儲(chǔ)信息代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
前端Vue頁(yè)面中展示本地圖片簡(jiǎn)單代碼示例
今天遇到一個(gè)在vue文件中引入本地圖片的問(wèn)題,于是有了這篇文章,本文主要給大家介紹了關(guān)于前端Vue頁(yè)面中展示本地圖片的相關(guān)資料,需要的朋友可以參考下2023-12-12

