vue多页面项目配置
一直以来更多的是进行单页面开发。但在与其他同行的交流中,发现多页面项目也是业务的一种需求,趁着今天有时间,今天搞了一下。
多页面的配置,自然也可以根据路由的mode分为hash和history模式。
先说本人更熟悉的hash模式。
一,多页面要有多个入口
默认使用vue-cli 2初始化的项目,需要修改webpack的entry参数,修改两个入口,如下
// 原来entry: {
app: './src/main.js'
},
// 修改后
entry: {
index: './src/index/main.js',
testp:'./src/testp/main.js'
}
二,利用HtmlWebpackPlugin插件配置两个html文件。
// 文件1new HtmlWebpackPlugin({
filename: 'index.html',
template: './index.html',
chunks: ["index"],
minify: {
removeComment: true,
collapseWhitespace: true
},
inject: true
}),
// 文件2
new HtmlWebpackPlugin({
filename: 'testp.html',
template: './testp.html',
chunks: ["testp"],
minify: {
removeComment: true,
collapseWhitespace: true
},
inject: true
})
当然需要创建两个html,即index.html和testp.html。
三,改写配置文件webpack.dev.conf.js
devServer: {clientLogLevel: 'warning',
historyApiFallback: {
rewrites: [
// { from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') },
{ from: /\/testp/, to: path.posix.join(config.dev.assetsPublicPath, 'testp.html') },
],
},
………………
这个是核心的。
最后hash模式下访问需要类似这样访问http://localhost:8080/testp/#/。
至于mode为history模式,在开发环境下基本一致,除了访问方式没有#。另外就是多页面的hash模式在生产环境下也需要后端配置的。
后续
如果是vue-cli3的项目,多页面配置使用的是参数pages,类似下面这种形式
pages: {ui: {
// page 的入口
entry: "src/views/index/main.js",
// 模板来源
template: "public/index.html",
// 在 dist/index.html 的输出
filename: "index.html",
// 当使用 title 选项时,
// template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
title: "Index Page",
// 在这个页面中包含的块,默认情况下会包含
// 提取出来的通用 chunk 和 vendor chunk。
chunks: ["chunk-vendors", "chunk-common", "ui"]
},
hh: {
// page 的入口
entry: "src/views/ui/main.js",
// 模板来源
template: "public/ui.html",
// 在 dist/index.html 的输出
filename: "ui.html",
// 当使用 title 选项时,
// template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
title: "Index Page",
// 在这个页面中包含的块,默认情况下会包含
// 提取出来的通用 chunk 和 vendor chunk。
chunks: ["chunk-vendors", "chunk-common", "hh"]
},
……………………
以上是 vue多页面项目配置 的全部内容, 来源链接: utcz.com/z/377847.html