vue cli重构多页面脚手架实例分享

官方提供的项目生成工具vue-cli没有对多页面webapp的支持,但是在实际的项目中,我们需要这样的脚手架,参考了很多大牛的方法,本文提供了一种我的单页面脚手架转换为多页面脚手架的方案,供大家参考。不好的地方也请大家指正。

准备

使用vue-cli生成一个你需要的单页面项目脚手架,然后我们就要开始我们的改装工程了。

重构过程

步骤一 改变目录结构

立即学习“前端免费学习笔记(深入)”;

step1 在src目录下面新建views文件夹,然后再views文件夹下新建index文件夹

step2 将src目录下的main.js和App.vue移动到step1中的index文件夹下,并将main.js重命名为index.js

step3 将src目录下的router文件夹移动到step1中的index文件夹下,如果不使用router可以再index.js中注释掉,我没有使用,因为我的每个页面不是单页面的应用,不必要使用路由功能

step4 将根目录下的index.html文件移动到step1中的index文件夹下

步骤二 修改build下的配置文件

在生产环境下会分页面打包独有js文件,并抽取公共js,不会什么都打包成一坨。打包后文件目录结构也是比较清晰地。一下所有修改都在build文件夹下

step1 修改utils.js,增加两个函数,一个用来获取页面多入口,一个用来输入打包后的页面,并注入js:

var glob = require('glob')var HtmlWebpackPlugin = require('html-webpack-plugin')var PAGE_PATH = path.resolve(__dirname, '../src/views')var merge = require('webpack-merge')//多入口配置//获取views文件夹下,每个页面下的index.js作为页面入口,故每个页面下都必须有index.jsexports.entries = function() { var entryFiles = glob.sync(PAGE_PATH + '/*/index.js') var map = {}, tmp = [], pathname = ''; entryFiles.forEach((filePath) => { var filename = filePath.substring(filePath.lastIndexOf('\/') + 1, filePath.lastIndexOf('.')) tmp = filePath.split('/').splice(-4) map[tmp[2] + '/' + filename] = filePath }) return map}//多页面输出配置//读取views文件夹下的对应每个页面的html后缀文件,然后放入数组中//如果想要更深的定制或者修改,建议大家看一下CommonsChunkPlugin//推荐一个基础的 https://segmentfault.com/q/1010000009070061exports.htmlPlugin = function() { let entryHtml = glob.sync(PAGE_PATH + '/*/*.html') let arr = [] entryHtml.forEach((filePath) => { let jsPath = '', tmp = []; let filename = filePath.substring(filePath.lastIndexOf('\/') + 1, filePath.lastIndexOf('.')) tmp = filePath.split('/').splice(-4) jsPath = tmp[2] + '/' + 'index' let conf = {  template: filePath,  filename: filename + '.html',  chunks: ['manifest', 'vendors', jsPath],  inject: true } if (process.env.NODE_ENV === 'production') {  conf = merge(conf, {  minify: {   removeComments: true,   collapseWhitespace: true,   removeAttributeQuotes: true  },  chunksSortMode: 'dependency'  }) } arr.push(new HtmlWebpackPlugin(conf)) }) return arr}step2 修改webpack.base.conf.js文件配置的入口// entry: {// app: './src/main.js'// },entry: utils.entries(),step3 修改webpack.dev.conf.js文件的打包方法 找到下面的代码,将其注释掉:new HtmlWebpackPlugin({ filename: 'index.html', template: 'index.html', inject: true}),

登录后复制

在plugins这个属性值的后面加上我们上面的方法,下面是代码片段:

// new HtmlWebpackPlugin({ // filename: 'index.html', // template: 'index.html', // inject: true // }), new FriendlyErrorsPlugin() ].concat(utils.htmlPlugin())step4 修改webpack.prod.conf.js 找到下面的代码,注释掉:new HtmlWebpackPlugin({filename: config.build.index,template: 'index.html',inject: true,minify: { removeComments: true, collapseWhitespace: true, removeAttributeQuotes: true // more options: // https://github.com/kangax/html-minifier#options-quick-reference},// necessary to consistently work with multiple chunks via CommonsChunkPluginchunksSortMode: 'dependency'}),

登录后复制

在plugins这个属性值的后面加上我们上面的方法,下面是代码片段:

new CopyWebpackPlugin([{  from: path.resolve(__dirname, '../static'),  to: config.build.assetsSubDirectory,  ignore: ['.*'] }]) ].concat(utils.htmlPlugin())

登录后复制

配置完成。正常启动项目即可。

相关推荐:

如何将 Vue-cli 改造成支持多页面的history模式

如何将 Vue-cli 改造成支持多页面的history模式

如何将 Vue-cli 改造成支持多页面的history模式

以上就是vue cli重构多页面脚手架实例分享的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3165315.html

(0)
上一篇 2025年3月30日 21:13:57
下一篇 2025年3月3日 02:40:53

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Linux下RPM打包流程分享

    本文主要和大家分享linux下rpm打包流程,希望能帮助到大家。 开始前的准备 安装rpmbuild软件包 yum -y install rpm-build 生成相关目录 要生成rpm相关目录,可以手动创建,也可以通过rpmbuild命令创…

    编程技术 2025年3月30日
    100
  • linux下svn常用命令分享

    本文主要和大家分享linux下svn常用命令,希望能帮助到大家。 1、将文件checkout到本地目录svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/…

    编程技术 2025年3月30日
    100
  • linux NFS服务安全加固实例分享

    nfs(network file system)是 freebsd 支持的一种文件系统,它允许网络中的计算机之间通过 tcp/ip 网络共享资源。不正确的配置和使用 nfs,会带来安全问题。 概述 NFS 的不安全性,主要体现于以下 4 个…

    编程技术 2025年3月30日
    100
  • Vue-cli3.0脚手架创建Vue项目步骤和过程

    vue-cli 3.0 是一个基于 vue.js 的全新脚手架工具,它可以帮助我们快速创建一个 vue 项目并且提供了很多便捷的工具和配置。 下面我们就来一步步介绍使用 Vue-cli 3.0 创建项目的步骤和过程。 安装 Vue-cli …

    编程技术 2025年3月30日
    100
  • vue脚手架如何导入jquery第三方插件

    vue脚手架导入jquery第三方插件的方法:1、下载jquery;2、编辑webpack.base.conf.js文件,引入webpack,并配置jquery插件;3、在入口文件中输入【import $ from ‘jquer…

    2025年3月30日
    100
  • 使用Vue.extend函数自定义组件的方法和示例

    使用vue.extend函数自定义组件的方法和示例 Vue是一个流行的JavaScript框架,用于构建用户界面。它提供了一种简单而直观的方式来创建可重用和可组合的组件。在Vue中定义组件的标准方法是使用Vue.component函数,但是…

    编程技术 2025年3月30日
    100
  • 使用Vue.extend函数创建局部组件的步骤和示例

    使用vue.extend函数创建局部组件的步骤和示例 Vue.js是一种用于构建用户界面的JavaScript框架,它通过组件化的方式来进行开发。Vue提供了创建全局组件和局部组件的方法,其中使用Vue.extend函数来创建局部组件。 V…

    编程技术 2025年3月30日
    100
  • 使用Vue.directive函数实现自定义指令的方法和示例

    使用vue.directive函数实现自定义指令的方法和示例 Vue.js是一款非常流行的JavaScript框架,它提供了许多内置的指令(Directives)来简化开发过程。然而,在某些情况下,内置的指令可能无法满足我们的需求,这时就需…

    编程技术 2025年3月30日
    100
  • 分享excel选择的技巧

    php小编新一精心整理了一些关于excel选择技巧的实用分享。excel是办公必备利器,熟练掌握选择技巧能提高工作效率。通过本文的学习,你将了解如何快速选择单元格、区域、行、列等,还能掌握快捷键的运用,让excel操作更得心应手。接下来,让…

    2025年3月29日
    100
  • 分享 word下标的相关知识

    php小编苹果带来分享word下标的相关知识。在word文档中,下标是一种特殊的文本格式,通常用于显示化学式中的化学元素、数学公式中的下标数字等。掌握如何在word中添加和编辑下标,可以让文档更具专业性和准确性。本文将介绍如何在word文档…

    2025年3月29日 互联网
    100

发表回复

登录后才能评论