vue多页面应用的动态配置

vue结合webpack构建多页面应用时,若一个个页面配置显然过于繁琐。这里我们以示例介绍下多页面应用如何实现动态配置。

一:src目录下建pages文件夹,将所有页面放在pages目录下

在这里插入图片描述

二、创建scanner.js文件,用于动态遍历pages子目录,以获取entry入口文件对象 和 html-webpack-plugin实例数组

遍历pages目录下的所有孙辈js和html,以其父目录(即pages子目录)命名js和html。

scanner.js文件

const path = require('path')
const glob = require('glob')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const PAGE_PATH = path.resolve(__dirname, '../src/pages')
const merge = require('webpack-merge')

const baseDir = filePath => path.basename(path.dirname(filePath))

exports.entries = () => {
    var entryFiles = glob.sync(PAGE_PATH + '/*/*.js')
    var map = {}
    entryFiles.forEach((filePath) => {
        var filename = baseDir(filePath)
        map[filename] = filePath
    })
    return map
}

exports.htmlPlugin = () => {
    let entryHtml = glob.sync(PAGE_PATH + '/*/*.html')
    let arr = []
    console.log('扫描到如下模块:')
    entryHtml.forEach((filePath) => {
        console.log(`\t${baseDir(filePath)} => ${filePath}`)
        var filename = baseDir(filePath)
        let conf = {
            template: filePath,
            filename: filename + '.html',
            chunks: ['manifest', 'vendor', filename],
            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
}

三、配置webpack配置文件

1)配置webpack.base.conf.js文件
打开webpack.base.conf.js文件,引入scanner.js文件中的entries方法,配置entry入口文件。
在这里插入图片描述
2)配置webpack.dev.conf.js和webpack.prod.conf.js文件

// 引入scanner.js文件的htmlPlugin方法
const {htmlPlugin} = require('./scanner')

// 将htmlPlugin方法生成的html-webpack-plugin实例数组合并至plugins数组中
plugins:[
	...
].concat(htmlPlugin())

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue页面路由配置是指在Vue项目中同时多个页面的路由。通常情况下,Vue项目是单页面应用(SPA),只有一个入文件和一个路由配置文件。但是有时候我们需要在同一个项目中同时管理多个独立的页面,这时就需要进行多页面路由配置。 在Vue中,可以通过vue-router插件来实现多页面路由配置。下面是一个简单的示例: 1. 首先,在Vue项目的src目录下创建一个pages文件夹,用于存放多个页面的组件。 2. 在src目录下创建一个router文件夹,用于存放路由配置文件。 3. 在router文件夹下创建一个index.js文件,用于配置路由。 4. 在index.js文件中,引入Vuevue-router,并创建一个新的VueRouter实例。 ```javascript import Vue from 'vue' import VueRouter from 'vue-router' Vue.use(VueRouter) const router = new VueRouter({ mode: 'history', routes: [ { path: '/page1', name: 'Page1', component: () => import('@/pages/Page1.vue') }, { path: '/page2', name: 'Page2', component: () => import('@/pages/Page2.vue') }, // 其他页面的路由配置 ] }) export default router ``` 5. 在main.js文件中,引入router并将其挂载到Vue实例上。 ```javascript import Vue from 'vue' import App from './App.vue' import router from './router' new Vue({ router, render: h => h(App) }).$mount('#app') ``` 在上面的示例中,我们创建了两个页面,分别是Page1和Page2。在路由配置中,我们使用了VueRouter的history模式,并配置了两个路由,分别对应不同的页面组件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值