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

下面就来详细讲解一下“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.js 中的 v-on 事件指令的使用

    浅谈Vue.js 中的 v-on 事件指令的使用 介绍 在Vue.js中,v-on指令主要用于监听DOM事件并执行一些JavaScript代码。它可以绑定事件处理函数并在事件触发时自动调用这些函数。 基本语法 在HTML元素中使用v-on指令,绑定DOM事件的处理函数,例如: <button v-on:click="handleClick&q…

    Vue 2023年5月27日
    00
  • vue中定时器setInterval的使用及说明

    关于“vue中定时器setInterval的使用及说明”的完整攻略,具体内容如下: 概述 JavaScript中的setInterval函数可以用来设置定时器,定时执行一些操作。在Vue.js中,我们也可以使用setInterval函数来实现类似的定时操作。本篇攻略主要介绍如何在Vue.js中使用setInterval函数。 使用方法 在Vue.js中,我们…

    Vue 2023年5月29日
    00
  • Vue列表渲染v-for的使用案例详解

    下面是“Vue列表渲染v-for的使用案例详解”的完整攻略。 什么是Vue列表渲染 Vue.js是一个数据驱动的JavaScript框架,该框架可以将数据和DOM元素绑定在一起,实现视图和数据的同步更新。这使得数据的展示和渲染非常容易实现,使网页的开发变得更高效和简洁。 Vue中的列表渲染就是一种数据渲染方式,它可以根据一个数组自动创建一些DOM元素,以此来…

    Vue 2023年5月27日
    00
  • Vue中的过滤器(filter)详解

    Vue中的过滤器(Filter)详解 什么是过滤器(Filter)? 过滤器(Filter)是Vue.js提供的一种可复用功能的方法,用于对数据的格式化处理。 在Vue.js的模板语法中, 可以用管道符(|)来应用过滤器。管道符前面是要过滤的数据项,管道符后面是过滤器的名称。 例如: <div>{{message | capitalize}}&l…

    Vue 2023年5月27日
    00
  • Vue项目API接口封装的超详细解答

    下面是关于“Vue项目API接口封装的超详细解答”的完整攻略。 什么是API接口封装 API接口封装是将前端应用与后端应用分离的一种实现方式,通过提供API接口,前端和后端可以独立开发和维护各自的应用。前端通过向后端发送请求,获取数据并返回前端页面进行渲染。 API接口封装的好处包括:- 前后端分离,提高开发效率;- 保障数据的安全性,不会暴露后端实现细节;…

    Vue 2023年5月28日
    00
  • 详解mpvue中小程序自定义导航组件开发指南

    “详解mpvue中小程序自定义导航组件开发指南”的完整攻略包括以下几个步骤: 1. 创建自定义组件 创建自定义导航组件的方法与创建普通自定义组件类似。在components目录下新建 cus-nav 文件夹,并在该文件夹下创建 cus-nav.vue 文件。 <template> <view> <view class=&quot…

    Vue 2023年5月27日
    00
  • Vue3中的h函数及使用小结

    下面我将详细讲解“Vue3中的h函数及使用小结”,并提供两个示例。 什么是h函数? 在 Vue3 中,模板语法(vue模板语法)和渲染的实现方式都有所变化。引入了 h 函数,即类似于 React 中的 jsx,在开发中可以使用 h 函数来手写渲染函数。 h 函数是 Vue3 用来创建 VNode(Vue的虚拟节点)的函数,使用 h 函数可以手写 templa…

    Vue 2023年5月28日
    00
  • vue项目中在外部js文件中直接调用vue实例的方法比如说this

    在 Vue 项目中,我们通常会将 JS 代码放在 Vue 组件中,这种方式可以方便地获取 Vue 实例和数据,但是有些场景需要在外部 JS 文件中直接调用 Vue 实例的方法,这时我们需要一些特殊的处理。 在外部 JS 文件中调用 vue 实例方法的参考步骤 先在外部 JS 文件中引入 Vue 库 js import Vue from “vue”; 注意: …

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