Vue-CLI多页分目录打包的步骤记录

yizhihongxing

下面就来详细讲解一下“Vue-CLI多页分目录打包的步骤记录”的完整攻略。

Vue-CLI多页分目录打包的背景

在Vue的开发中,通常会使用到Vue-CLI脚手架工具来快速创建一个Vue项目,但默认情况下Vue-CLI创建的是单页应用,而有些场景需要创建多页应用。多页应用指的是一个网站包含多个入口页面,并且每个入口页面处理不同的业务逻辑,这种情况下需要使用多个HTML文件来搭建网站页面。

在进行多页分目录打包时,需要对Vue-CLI的默认配置进行修改,下面就讲具体的步骤。

Vue-CLI多页分目录打包的步骤记录

第一步:创建多个html文件

在项目的src目录下,创建多个HTML文件,例如:

src/
 |-- pages/
     |-- page1/
         |-- index.html
     |-- page2/
         |-- index.html

其中,page1和page2是两个入口页面的文件夹,里面分别包含一个index.html文件,index.html文件中的内容根据业务需求进行编写。

第二步:修改webpack配置

在Vue-CLI项目中,webpack是用来进行打包的工具。需要修改webpack的配置文件以支持多页应用的打包。我们可以在项目的根目录下创建一个vue.config.js文件,并按照以下方式修改webpack的配置:

const path = require('path');

function resolve (dir) {
  return path.join(__dirname, '..', dir)
}

module.exports = {
  pages: {
    page1: {
      entry: 'src/pages/page1/main.js',
      template: 'src/pages/page1/index.html',
      filename: 'page1.html'
    },
    page2: {
      entry: 'src/pages/page2/main.js',
      template: 'src/pages/page2/index.html',
      filename: 'page2.html'
    }
  },
  configureWebpack: {
    resolve: {
      alias: {
        '@': resolve('src')
      }
    }
  }
}

上面的代码中,我们定义了两个页面,分别是page1和page2,它们的入口文件分别位于src/pages/page1/main.jssrc/pages/page2/main.js,HTML模板文件分别位于src/pages/page1/index.htmlsrc/pages/page2/index.html,最后生成的HTML文件分别被命名为page1.htmlpage2.html

configureWebpack中加入resolve,这是为了做alias的别名配置,用来解决多层级目录引入时的路径问题,这里我们直接设置根目录为src。也可以在webpack.base.config.js下进行配置。

第三步:配置路由

由于我们现在是多页应用,每个页面可能都需要单独配置路由,可以在入口文件中进行配置,例如page1的主入口文件main.js代码如下:

import Vue from 'vue'
import App from './App.vue'
import router from './router'

Vue.config.productionTip = false

new Vue({
  router,
  render: h => h(App),
}).$mount('#app')

第四步:编译打包

执行以下命令进行编译打包:

npm run build

打包完成后,我们会在dist目录下看到多个HTML文件和多个JS文件,这就是我们的多页应用。

示例

示例一:使用vue-router实现多页面应用

在上面的步骤中,我们虽然对每个页面进行了路由的配置,但实际上路由并没有生效。接下来我们来演示如何使用Vue-Router来实现多页应用的路由。

第一步:安装Vue-Router

在终端里通过npm进行安装:

npm install vue-router --save

第二步:应用Vue-Router

src/pages/page1/main.js文件中应用Vue-Router,代码如下:

import Vue from 'vue'
import App from './App.vue'
import router from './router'

Vue.config.productionTip = false

new Vue({
  router, // 将路由实例注入到vue实例中
  render: h => h(App),
}).$mount('#app')

然后,我们在src/pages/page1目录下,新建一个router.js文件,用来做路由的配置,代码如下:

import Vue from 'vue'
import Router from 'vue-router'
import Home from './views/Home.vue'
import About from './views/About.vue'

Vue.use(Router)

export default new Router({
  mode: 'history',
  routes: [
    {
      path: '/',
      name: 'home',
      component: Home
    },
    {
      path: '/about',
      name: 'about',
      component: About
    }
  ]
})

上面的代码中,我们定义了两个路由:

  • / 对应的是Home组件
  • /about 对应的是About组件

然后我们可以在src/pages/page1/App.vue中使用<router-view />来渲染路由组件。

在src/pages/page2目录下做相同的修改,具体不再赘述。

第三步:编译打包

按照上面的步骤进行配置完Vue-Router后,在终端中运行:

npm run build

编译打包完成,会在dist目录下看到两个HTML文件和两个JS文件。

示例二:使用Element-UI实现多页面应用

第一步:安装和引入Element-UI

src/main.js中引入Element-UI和样式文件:

import Vue from 'vue';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import App from './App.vue';
import router from './router';

Vue.use(ElementUI);

new Vue({
  router,
  render: h => h(App),
}).$mount('#app');

src/pages/page1/main.jssrc/pages/page2/main.js中做相同的引入和使用操作。

第二步:修改webpack配置

在项目根目录下的vue.config.js文件中加入别名配置:

const path = require('path');

function resolve (dir) {
  return path.join(__dirname, '..', dir)
}

module.exports = {
  pages: {
    page1: {
      entry: 'src/pages/page1/main.js',
      template: 'src/pages/page1/index.html',
      filename: 'page1.html'
    },
    page2: {
      entry: 'src/pages/page2/main.js',
      template: 'src/pages/page2/index.html',
      filename: 'page2.html'
    }
  },
  configureWebpack: {
    resolve: {
      alias: {
        '@': resolve('src')
      }
    },
  },
};

在上面的代码中,resolve函数是为了获取绝对路径,@ 表示src的绝对路径,后续实现引入时就可以使用别名了。

第三步:编译打包

按照上述步骤将代码和配置修改完成后,在终端中运行:

npm run build

编译成功后,会在dist目录下看到两个HTML文件和两个JS文件,这就是我们的多页应用。

以上就是Vue-CLI多页分目录打包的步骤记录,希望对大家有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue-CLI多页分目录打包的步骤记录 - Python技术站

(2)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • 如何利用vue展示.docx文件、excel文件和csv文件内容

    展示Word文档的步骤 在Vue项目中,我们可以使用js的库jszip和docxtemplater来解析Word文档中的数据。 安装依赖库 在终端输入以下命令安装依赖库: npm install jszip docxtemplater –save 解析Word文档 将Word文档解析成json格式的数据: import JSZip from ‘jszip’…

    Vue 2023年5月28日
    00
  • vue实现横向时间轴

    下面是Vue实现横向时间轴的完整攻略。 实现思路 实现横向时间轴的关键在于CSS部分的设计。我们需要定义好每个时间点的样式以及它们之间的间隔。 在Vue中,我们可以采用循环遍历的方式,动态生成时间点列表。同时,为了实现滚动效果,我们需要监听鼠标事件,并且动态计算容器滚动的距离。 具体实现 第一步:HTML结构 我们需要先定义好HTML结构。 <div …

    Vue 2023年5月28日
    00
  • Vant主题定制如何修改颜色样式

    下面是关于Vant主题定制如何修改颜色样式的完整攻略,过程中包含两条示例说明。 确定主题颜色 首先,我们需要确定用于主题的颜色。可以到Vant的文档中查看可用的颜色变量。例如,有三个颜色变量 $van-primary-color、$van-success-color、$van-danger-color,它们分别对应了主色、成功、危险的颜色。 修改颜色 接下来…

    Vue 2023年5月27日
    00
  • Vue实现动态添加或者删除对象和对象数组的操作方法

    Vue是一款流行的JavaScript框架,可以用于构建易于维护的用户界面和单页面应用程序。Vue提供了许多功能来帮助我们对数据进行处理,其中包括动态添加和删除对象和对象数组。 1. 实现动态添加对象 要在Vue中动态添加一个对象,首先需要定义一个方法来处理添加操作。可以在Vue组件的方法中添加一个“add”函数,来实现添加对象的逻辑。 <templa…

    Vue 2023年5月28日
    00
  • vue 实现拖拽动态生成组件的需求

    实现拖拽动态生成组件的需求,可以分为以下几个步骤: 安装vue-draggable插件 注册组件 在页面中使用vue-draggable实现拖拽效果动态生成组件 添加组件属性、方法 下面将分步骤详细讲解。 1. 安装vue-draggable插件 vue-draggable是一个拖拽组件库,它提供了常用的拖拽功能,并且支持Vue单文件组件,可以轻松地将功能模…

    Vue 2023年5月28日
    00
  • 解决vue中对象属性改变视图不更新的问题

    当我们在Vue组件中把一个对象作为一个属性传递给子组件,如果我们修改了对象中的属性的值,那么Vue默认是不会触发视图更新的,这是因为Vue在比较对象时是通过引用地址比较的,而不是对象内部属性的值比较。这就导致了当对象中属性值改变后,我们需要手动通知Vue去更新视图的问题。 下面是解决vue中对象属性改变视图不更新的步骤: 方案一:使用vm.$set()方法更…

    Vue 2023年5月28日
    00
  • 使用vue-cli3新建一个项目并写好基本配置(推荐)

    下面是使用vue-cli3新建一个项目并写好基本配置的完整攻略,步骤如下: 1. 安装Node.js和npm 使用vue-cli3新建项目需要先安装Node.js和npm。我们可以在Node.js的官网中找到相应的安装包并下载安装,具体步骤可在官网中查看。 2. 全局安装vue-cli3 在安装好Node.js和npm之后,我们需要在命令行中输入以下命令来全…

    Vue 2023年5月28日
    00
  • 解析Vue2 dist 目录下各个文件的区别

    Vue2 是一款流行的 JavaScript 前端框架,它的 dist 目录下包含了多个文件,每个文件都有自己的职责和用途。下面我将详细讲解 Vue2 dist 目录下各个文件的区别。 vue.js vue.js 文件是最基本的 Vue2 库文件,包含了 Vue 的核心代码和各种插件。如果你只想使用 Vue 就可以将这个文件添加到你的 HTML 文件中,然后…

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部