首先使用如下的命令创建一个新的 Vue.js 项目
vue init webpack vue-3
使用 VsCode 打开项目之后,在命令行进入到项目中去,安装相关的依赖库,然后运行项目,执行下面的命令
cd vue-3
npm install
npm run dev
在一切正常的情况下,在浏览器输入 http://localhost:8080 应该会弹出一个含有大大的 V 字图标的页面。
完成上面的准备工作之后,接下来我们就来实现多页面项目的配置,我们预期希望实现的效果如下:
在浏览器输入 http://localhost:8080/admin 就会跳转到显示 这里是管理员登录 的页面。
我们在项目的 src 目录下建立 page/login 目录
然后在 login 目录下新建三个文件夹: admin.html admin.js Admin.vue
然后编写相应的页面显示代码,其中
admin.html 中的代码如下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>管理员登录页面</title>
</head>
<body>
<div id="admin"></div>
</body>
</html>
Admin.vue 中的代码如下
<template>
<div id="admin">
<p>这里是管理员登录页面</p>
</div>
</template>
<script>
export default {
name: 'Admin'
}
</script>
admin.js 中的代码如下
import Vue from 'vue'
import Admin from './Admin.vue'
Vue.config.productionTip = false
/* eslint-disable no-new */
new Vue({
el: '#admin',
components: { Admin },
template: '<Admin/>'
})
上面显示页面的代码完成之后,开始进行配置工作
首先打开 build
目录
在 webpack.base.conf.js
文件的 entry
配置属性加上新的入口文件:
module.exports = {
context: path.resolve(__dirname, '../'),
entry: {
app: './src/main.js',
admin: './src/page/login/admin.js'
},
在webpack.dev.conf.js
文件的devServer
下的 rewrites
添加重定向:
devServer: {
clientLogLevel: 'warning',
historyApiFallback: {
rewrites: [
{ from: /.admin/, to: path.posix.join(config.dev.assetsPublicPath, 'src/indexlogin/admin.html') },
{ from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') },
],
},
同样要在该文件中的plugins
配置项内多配置一个HtmlWebpackPlugin
插件,用于生成 admin.html 的入口页
同时添加 chunks
,用于指定在前面 entry
对应的入口文件的别名。
plugins: [
new webpack.DefinePlugin({
'process.env': require('../config/dev.env')
}),
new webpack.HotModuleReplacementPlugin(),
new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update.
new webpack.NoEmitOnErrorsPlugin(),
// https://github.com/ampedandwired/html-webpack-plugin
new HtmlWebpackPlugin({
filename: 'index.html',
template: 'index.html',
chunks:['app'],
inject: true
}),
new HtmlWebpackPlugin({
filename: 'src/page/login/admin.html',
template: 'src/page/login/admin.html',
chunks:['admin'],
inject: true
}),
然后我们找到 config
目录,打开里面的 index.js
文件,在build
属性下添加如下代码
build: {
// Template for index.html
index: path.resolve(__dirname, '../dist/index.html'),
admin: path.resolve(__dirname, '../dist/src/page/login/admin.html'),
以上完成所有的配置工作,在命令行重新执行npm run dev
,项目启动后,在浏览器键入 http://localhost:8080/admin ,就成功的跳转到刚刚我们写的页面中去了。