关于Vue.js中多页面项目的配置

首先使用如下的命令创建一个新的 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 ,就成功的跳转到刚刚我们写的页面中去了。

猜你喜欢

转载自blog.csdn.net/zjq_1314520/article/details/79497450
今日推荐