You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Vue实现两个HTML页面的打包构建?

问题原因

你当前项目默认使用单页应用构建配置,构建工具只会将打包后的JS、CSS资源自动注入到public/index.html中,public/blog/some-page.html未被纳入构建处理流程,因此不会更新也不会加载对应的Vue组件。同时你将两个页面的Vue实例写在同一个入口文件中,还会导致单个页面加载时找不到另一个挂载节点的控制台报错。

解决方案(Vue CLI 环境)

1. 拆分独立入口文件

将原src/main.js拆分为两个页面的独立入口,避免实例挂载冲突:

  • 新增src/main.index.js作为首页入口:
import Vue from 'vue';
import Index from './Index.vue';
import vuetify from './plugins/vuetify';

Vue.config.productionTip = false;

new Vue({
  vuetify,
  render: (h) => h(Index),
}).$mount('#app');
  • 新增src/main.blog.js作为博客页入口:
import Vue from 'vue';
import Blog from './Blog.vue';
import vuetify from './plugins/vuetify';

Vue.config.productionTip = false;

new Vue({
  vuetify,
  render: (h) => h(Blog),
}).$mount('#blog');

原src/main.js可删除。

2. 配置多页面构建参数

在项目根目录新建/修改vue.config.js,通过pages字段声明两个页面的构建规则:

module.exports = {
  pages: {
    // 首页配置
    index: {
      entry: 'src/main.index.js',
      template: 'public/index.html',
      filename: 'index.html',
      title: '首页'
    },
    // 博客页配置,key对应输出路径
    'blog/some-page': {
      entry: 'src/main.blog.js',
      template: 'public/blog/some-page.html',
      filename: 'blog/some-page.html',
      title: '博客页'
    }
  }
}

3. 重新打包验证

执行npm run build命令重新打包,此时dist目录下会同时生成index.html和blog/some-page.html,两个文件都会自动注入对应的构建资源,部署到服务器后即可正常访问。

如果你使用的是Vite构建工具,逻辑类似,只需在vite.config.js中配置build.rollupOptions.input指定两个HTML文件的路径作为多入口即可。

内容的提问来源于stack exchange,提问作者Richard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 15:45:03