如何让Vue单页面工程打包出一份每个路由都有一个对应的.html文件?

需求:
vue的单页面工程在打包的时候,除了生成一份单页面工程外,还需要额外生成一份和vue路由对应的多个.html文件,
这批html的代码和pages里面的.vue文件几乎是一致的,单个.html页面可以浏览无报错。
例如:
path为/index的页面,对应的是index.vue,最后打包的时候可以生成一个对应的index.html文件,index.vue代码如下:

<template>
  <div id="app">
      <div class="example">{{ msg }}</div>
  </div>
</template>

<script>
export default {
  data () {
    return {
      msg: 'Hello world!'
    }
  }
}
</script>

<style>
.example {
  color: red;
}
</style>

生成的index.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">
  <style>
      .example {
         color: red;
      }
  </style>
</head>
<body>
  <div id="app">
      <div class="example">{{ msg }}</div>
  </div>
  <script>
    new Vue({
        el:'#app',
        data:{
            msg: 'Hello world!'
        }
    });
  </script>
</body>
</html>

当然,这是一个简单的例子,实际的项目中会涉及到第三方库、子组件、css预处理器等问题,请问有大佬遇过类似的需求吗?

阅读 6.8k
2 个回答

可以用 nuxt.js, 这个是服务端渲染页面框架,基于vue,可以自动根据路由生成html页面

nuxt官方教程

新手上路,请多包涵

没有将单个vue 打包成html;
目前做法是 打包出不同项目(html、css、js、img)
动态打包 目的是组件通用 但只打包一个项目 而不会因为修改一个组件而将引用这些组件的文件都从新编译

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题