Vite+Vue下的多页面入口配置

文章介绍了如何在Vite项目中配置多页面入口,通过修改vite.config.js中的build.rollupOptions.input,添加不同的入口文件路径。对于非index.html文件,访问时需使用完整文件名。同时,如果开启history模式的vue-route,错误配置可能导致访问问题。
摘要由CSDN通过智能技术生成

我发现多页面入口配置在网上的资料比较乱,今天正好结合我们的开源API分析工具项目(APIcat)更新情况总结一下。

更新vite.config.js

主要配置的更新是在vite.config.js里面要增加build里的rollupOptions,因为vite底层使用了rollup,实际要更改的是他的配置,为rollupOptions增加多个input属性,

官方文档地址为:https://rollupjs.org/configuration-options/#input

推荐配置为map,比如我们有report和detect两个入口,则分别配置如下:

 build: {
    rollupOptions: {
      input: {
        report: fileURLToPath(new URL('./report/index.html', import.meta.url)),
        detect: fileURLToPath(new URL('./detect/index.html', import.meta.url)),
      },
    },
  },

 具体的值不用在意,能解析到即可。比如我另外一个项目配置为:

  build: {
    rollupOptions: {
      input: {
        main: resolve(__dirname, 'index.html'),
        get: resolve(__dirname, 'page/get.html'),
        apihome: resolve(__dirname, 'api/home.html'),
      },
    },
  },

其实配置很简单,但是调试的时候要注意一些问题:

如果文件是index.html,访问的时候可以使用目录名称访问,比如我的report入口,就可以使用http://localhost:5173/report/访问,注意:最后面的/是必须要的

如果文件不是index.html,而是其他名称,则必须使用完整文件名称访问,省略.html都不行

如果犯了上面两个错误,恰好还有一个根入口,又启动了history模式的vue-route,上面的问题特别容易造成配置不成功的假象,因为这时,会默认使用根入口渲染,并将多余url作为vue-route参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是配置页面Vue3 + Vite + TypeScript的示例代码: 1. 在项目根目录下创建一个`pages`文件夹,用于存放多页面入口文件和模板文件。 2. 在`pages`文件夹下创建一个`index`文件夹,用于存放首页相关的文件。 3. 在`index`文件夹下创建一个`index.html`文件,作为首页的模板文件。 4. 在`index`文件夹下创建一个`main.ts`文件,作为首页的入口文件。 5. 在`pages`文件夹下创建一个`about`文件夹,用于存放关于页面相关的文件。 6. 在`about`文件夹下创建一个`about.html`文件,作为关于页面的模板文件。 7. 在`about`文件夹下创建一个`main.ts`文件,作为关于页面入口文件。 8. 在`vite.config.ts`文件中配置页面: ```typescript import { defineConfig } from 'vite'; import { resolve } from 'path'; export default defineConfig({ build: { outDir: 'dist', assetsDir: 'assets', rollupOptions: { input: { index: resolve(__dirname, 'pages/index/main.ts'), about: resolve(__dirname, 'pages/about/main.ts'), }, }, }, }); ``` 9. 在`index.html`和`about.html`文件中分别引入不同的JS文件: ```html <!-- index.html --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>Index Page</title> </head> <body> <div id="app"></div> <script type="module" src="/index.js"></script> </body> </html> <!-- about.html --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>About Page</title> </head> <body> <div id="app"></div> <script type="module" src="/about.js"></script> </body> </html> ``` 10. 在`main.ts`文件中编写Vue3的代码: ```typescript import { createApp } from 'vue'; import App from './App.vue'; createApp(App).mount('#app'); ``` 11. 运行`npm run dev`启动开发服务器,访问`http://localhost:3000/index.html`和`http://localhost:3000/about.html`即可查看多页面效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百家饭OpenAPI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值