当前位置: 首页 > 编程笔记 >

vue-cli 3.0 自定义vue.config.js文件,多页构建的方法

顾文昌
2023-03-14
本文向大家介绍vue-cli 3.0 自定义vue.config.js文件,多页构建的方法,包括了vue-cli 3.0 自定义vue.config.js文件,多页构建的方法的使用技巧和注意事项,需要的朋友参考一下

使用自己基于vue-cli 2.X改造的前端多页脚手架有近1年多时间了,一直没机会升级3.0版本

开始零零碎碎开始写一些功能,顺便分享一下

const path = require('path')
const glob = require('glob')
/** 获取多页的入口脚本和模板 */
const getPages = (() => {
 const [
 globPathHtml,
 globPathJs,
 pages,
 tempSet
 ] = [
 ['./src/modules/**/index.html', 'template'], // 入口模板正则
 ['./src/modules/**/main.js', 'entry'], // 入口脚本正则
 Object.create(null),
 new Set()
 ]
 const getMultiPageConf = (globPath, keyName) => {
 let [fileList, tempArr, modName] = [glob.sync(globPath), [], null]
 if (fileList.length !== 0) {
  for (let entry of fileList) {
  tempArr = path.dirname(entry, path.extname(entry)).split('/')
  modName = tempArr[tempArr.length - 1]
  if (tempSet.has(modName)) {
   Object.assign(pages[modName], { [keyName]: entry, 'filename': `${modName}.html` })
  } else {
   Reflect.set(pages, modName, { [keyName]: entry }) && tempSet.add(modName)
  }
  }
  return true
 } else {
  if (keyName === 'template') {
  throw new Error('无法获取多页入口模板')
  } else if (keyName === 'entry') {
  throw new Error('无法获取多页入口脚本')
  } else {
  throw new Error('无法获取多页信息')
  }
 }
 }
 try {
 while (getMultiPageConf(...globPathHtml) && getMultiPageConf(...globPathJs)) return pages
 } catch (err) {
 console.log('获取多页数据错误:', err)
 }
})()
console.log('pages: ', getPages)

打印结果:

pages: { mod1:
 { template: './src/modules/mod1/index.html',
  entry: './src/modules/mod1/main.js',
  filename: 'mod1.html' },
 mod2:
 { template: './src/modules/mod2/index.html',
  entry: './src/modules/mod2/main.js',
  filename: 'mod2.html' },
 mod3:
 { template: './src/modules/mod3/index.html',
  entry: './src/modules/mod3/main.js',
  filename: 'mod3.html' } }

使用:

/** vue.config.js */
module.exports = {
 ...
 pages: getPages
 ...
}

以上这篇vue-cli 3.0 自定义vue.config.js文件,多页构建的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍使用 Vue cli 3.0 构建自定义组件库的方法,包括了使用 Vue cli 3.0 构建自定义组件库的方法的使用技巧和注意事项,需要的朋友参考一下 本文旨在给大家提供一种构建一个完整 UI 库脚手架的思路:包括如何快速并优雅地构建UI库的主页、如何托管主页、如何编写脚本提升自己的开发效率、如何生成 CHANGELOG 等 前言 主流的开源 UI 库代码结构主要分为三大部分: 组

  • 下面的这些代码可以帮助您通过CSS文件和SCSS文件,创建和编译 CSS 和 JS 文件的source-maps。 安装依赖 为了运行编译和压缩任务,你必须安装 node 和 npm。 命令行 // (Optional) Install Gulp module globally npm install gulp -g // Install fullpage's build dependen

  • 3.4.2 构建类型 默认情况下,Android plugin 会自动的设置工程,构建 release 和 debug 两个版本。 他们主要的差异主要在于是否可以在设备上调试应用以及APK如何签名。 debug 版本会被使用已知的名称/密码自动生成的密钥/证书签名。release 版本在构建过程中不会被签名,需要构建后再签名。 这些配置可以通过一个叫 BuildType 配置。默认情况下,已经创建

  • 本文向大家介绍vue 多入口文件搭建 vue多页面搭建的实例讲解,包括了vue 多入口文件搭建 vue多页面搭建的实例讲解的使用技巧和注意事项,需要的朋友参考一下 红色为更改后的不同之处 vue 多入口文件搭建 在webpack.base.conf 中修改 这样一来的话,就在中细分,最后输出html都在dist下。 这里的字符串操作也是和路径的情况相匹配的,如果有需要进行其他方式的设定,注意在这里

  • 我跟随这个博客向Scene Builder 2.0添加了一个自定义JavaFX组件,并构建了自己的自定义组件。 FXML文件: 控制器类: 样式表: 现在我的问题是我不能改变场景生成器中标签的值。我们是否可以创建一个自定义字段,该字段将出现在场景生成器上,并有助于更改标签文本?

  • 本文向大家介绍vue - vue.config.js中devServer配置方式,包括了vue - vue.config.js中devServer配置方式的使用技巧和注意事项,需要的朋友参考一下 前言 这里写你调用接口的基础路径,来解决跨域,如果设置了代理,那你本地开发环境的axios的baseUrl要写为'',即空字符串 只有一个接口ip端口时 2、设置axios中的baseUrl 与proxy