vue-cli擴展多模塊打包的示例代碼
場景
在實際的項目開發(fā)中會出現(xiàn)這樣的場景,項目中需要多個模塊(單頁或者多頁應(yīng)用)配合使用的情況,而vue-cli默認(rèn)只提供了單入口打包,所以就想到對vue-cli進(jìn)行擴展
實現(xiàn)
首先得知道webpack是提供了多入口打包,那就可以從這里開始改造
新建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ù)自己的項目配置更改,此處是以src/modules/文件夾下的目錄作為模塊,每個模塊中都有一個main.js作為入口文件
修改build/webpack.base.conf.js中entry
const entryObj = require('./entry')
module.exports = {
entry: entryObj
}
接下來就是如何將打包好的文件注入到html中,這里利用html-webpack-plugin插件來解決這個問題,首先你需要有一個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
}
實戰(zhàn)
vue移動web通用腳手架
github地址: https://github.com/GavinZhuLei/vue-mobile
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 詳解Vue 中 extend 、component 、mixins 、extends 的區(qū)別
- 詳解vue mixins和extends的巧妙用法
- 詳解VUE 對element-ui中的ElTableColumn擴展
- vue組件實現(xiàn)可搜索下拉框擴展
- 詳解Vue.js iview實現(xiàn)樹形權(quán)限表(可擴展表)
- vue 右鍵菜單插件 簡單、可擴展、樣式自定義的右鍵菜單
- VUE2.0+ElementUI2.0表格el-table實現(xiàn)表頭擴展el-tooltip
- 詳解Vue2.0組件的繼承與擴展
- 使用Vue開發(fā)自己的Chrome擴展程序過程詳解
- 詳解如何寫出一個利于擴展的vue路由配置
- Vue Extends 擴展選項用法完整實例
相關(guān)文章
vue中實現(xiàn)Monaco Editor自定義提示功能
最近小編接到一個項目,需要在瀏覽器的ide中支持自定義提示功能,接下來通過本文給大家介紹在vue中實現(xiàn)Monaco Editor自定義提示功能,需要的朋友可以參考下2019-07-07
詳解Vue webapp項目通過HBulider打包原生APP
這篇文章主要介紹了詳解Vue webapp項目通過HBulider打包原生APP,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06

