首页 > 其他分享 >2023.6.14 - vue多页面项目配置

2023.6.14 - vue多页面项目配置

时间:2023-06-14 17:13:10浏览次数:32  
标签:vue const 14 pagesPath resolve 2023.6 pages dir aliasConfig

抽离multipage.config.js多页面配置文件

const { resolve } = require('path');
const fs = require('fs');

// 获取多页的入口配置
const pagesPath = 'src/pages';
// pages页面配置
const pages = getAllPages(resolve(pagesPath));
// alias 配置
const aliasConfig = {};

/**
 * alias 配置,给 pages/ 下的分页都取一个别名(为分页的文件夹名)
 * @example
 * `import 'application'; // => src/pages/application/`
 */
Object.values(pages).forEach((page) => {
  const pagePath = `${pagesPath}/${page.title}/`;
  aliasConfig[page.title] = pagePath;
  aliasConfig['@' + page.title] = pagePath; // **创建 @ 开头的路径,用于 vue 模版中的 alias 路径使用**
});
// get all pages
function getAllPages(pagesPath) {
  const pagesEntry = (dir) => `${pagesPath}/${dir}/main.js`;
  const pagesConfig = {};
  // 同步取出所有的 pages
  let dirs = fs.readdirSync(pagesPath).filter((dir) => {
    return fs.statSync(pagesPath + '/' + dir).isDirectory();
  });
  // 生成 pages 配置
  dirs.forEach((dir) => {
    pagesConfig[dir] = {
      entry: pagesEntry(dir),
      title: dir,
      filename: `${dir}.html`,
      //  指定多页面使用的模版路径
      template: `${resolve('public/template')}/${dir}.html`,
    };
  });

  return pagesConfig;
}

module.exports = {
  pages,
  aliasConfig,
};

vue.config.js 引入

const { resolve } = require('path');
const { pages, aliasConfig } = require('./multipage.config');
module.exports = {
  lintOnSave: false,
  //  多页面
  pages,
  configureWebpack: {
    resolve: {
      // 多页面别名配置 
      alias: { '@': resolve('src'), src: resolve('src') , ...aliasConfig},
      extensions: ['.vue.js'],
    },
  },
  // 开发服务器配置
  devServer: {
    // 代理配置
    proxy: require('./proxy.config'),
  },
};

标签:vue,const,14,pagesPath,resolve,2023.6,pages,dir,aliasConfig
From: https://www.cnblogs.com/yehuda/p/17480789.html

相关文章

  • 2023.6.14 - 设置底部阴影
    如果您想要一个outset的阴影,只在容器底部显示,您可以使用::before或::after伪元素来创建一个阴影层,然后将它放在容器下面。这种方法可以避免阴影出现在容器的顶部。下面是一个实现这个效果的CSS代码示例:div{position:relative;z-index:1;}div::before{co......
  • npm install报错[email protected] postinstall: `node scripts/build.js`
    [email protected]: nodescripts/build.js解决方法:npmconfigsetsass_binary_site=https://npm.taobao.org/mirrors/node-sassnpminstall  ......
  • vue封装包含区域内不可拖拽的可拖拽组件
    标题比较绕口,大概意思就是封装一个可拖拽组件,但是因为组件内有文件或者表单或者其它原因而不可在这个区域内使用拖拽,所以在绑定拖拽区域方法的同时限制不可拖拽区域。实现方式很简单  直接看代码drag.jsimportVuefrom'vue'exportconstdrag=Vue.directive('drag',{......
  • 2023.6.14每日一题
    B.Garland-1800原题链接CodeforcesRound612(Div.1)ACodeforcesRound612(Div.2)C题目大意给定一个被删去字符的\(1\simn\)排列,现在需要将空缺位置填入缺失的数,使得最终得到的序列仍是一个\(1\simn\)的排列,问所有填法中,相邻两项的奇偶性不同的数对数量最小......
  • vue3 css ts 双重弹跳加载动画
    /双重弹跳加载动画*/效果如同页面https://codepen.io/yjx123/pen/zYMvbML<ahref="javascript:void(0)"@click="startLoading"><inline-svg:src="getAssetPath(iconPath)"></inline-svg><div:style="{......
  • 【React工作记录一百零五】springBoot+vue实现登录操作和JWT验证
    前言大家好我是歌谣今天继续进行前后端的一个学习目前进入的是javaweb部分今天来聊聊登录部分和JWT验证部分的书写用户登录loginControllerpackagecom.itheima.controller;importcom.itheima.pojo.Emp;importcom.itheima.pojo.Result;importcom.itheima.service.EmpSer......
  • 2023-06-14 记录一下vue组件如何调用App.vue里面的方法(代码来至chatGpt)
    可以通过在子组件中使用$emit方法来触发App.vue中的方法。具体步骤如下:在App.vue中定义一个方法<script>exportdefault{methods:{appMethod(){console.log('调用了App.vue中的方法')}}}</script>在子组件中使用$emit方法触发该方......
  • 【题解】[JLOI2014]镜面通道
    题目描述:在一个二维平面上,有一个镜面通道,由镜面\(AC,BD\)组成,\(AC,BD\)长度相等,且都平行于\(x\)轴,\(B\)位于\((0,0)\)。通道中有\(n\)个外表面为镜面的光学元件,光学元件\(\alpha\)为圆形,光学元件\(\beta\)为矩形(这些元件可以与其他元件和通道有交集,具体看下图)。......
  • vue watch deep 用法
    简单案例<template><div><h1>watchdeep</h1><p>obj:{{obj}}</p><p>调用watch次数:{{times}}</p><button@click="chgObj">改变对象</button></div></t......
  • Vue3中循环任务优化方案
    需求在使用循环任务时,往往需要使用到setInterval方法。其接受三个参数,分别是1.具体执行的函数2.执行时间间隔3.传递个函数的参数,并返回一个id,后续可以使用这个id来停止循环的执行。具体的使用可以查阅MDN。在实际开发中,很容易重复创建相同的interval实例,进行反复的执行,并且在......