vite2和vue3如何搭建多页面应用?

How to build a multi pages application by vite2 and vue3?

我通过如下更改 vue.config.js 使用 Vue CLI 和 Vue 2 构建了一个多页面应用程序:

pages: {
    index: {
      entry: './src/pages/index/main.js',
      template: 'public/index.html',
      title: 'index page',
      chunks: ['chunk-vendors', 'chunk-common', 'index']
    },
    admin: {
      entry: './src/pages/admin/main.js',
      template: 'public/index.html',
      title: 'admin page',
      chunks: ['chunk-vendors', 'chunk-common', 'admin']
    }
},
...

但是如何使用 Vite 和 Vue 3 构建多页面应用程序?

这是我的目录结构。 我这样编辑 vite.config.js:

import vue from '@vitejs/plugin-vue'
const { resolve } = require('path')
/**
 * @type {import('vite').UserConfig}
 */
export default {
  plugins: [vue()],
  build:{
    rollupOptions:{
      input:{
        main:resolve(__dirname,'index.html'),
        admin:resolve(__dirname,'src/admin/index.html')
      }
    }
  }
}

但是当我构建时 returns 出错,我无法通过 localhost:3000/admin/index.html.

打开管理页面

您可以为每个入口点创建两个单独的 index.html。例如,<projectRoot>/index.html 导入 <projectRoot>/main.js,而嵌套的 <projectRoot>/admin/index.html 导入 <projectRoot>/admin/main.js.

考虑以下目录结构:

|-package.json
|-vite.config.js
|-index.html
|-main.js
|-admin/
|---index.html
|---main.js

您将使用此配置创建 multi-page app:

// vite.config.js
const { resolve } = require('path')

module.exports = {
  build: {
    rollupOptions: {
      input: {
        main: resolve(__dirname, 'index.html'),
        admin: resolve(__dirname, 'admin/index.html')
      }
    }
  }
}