如何在vue中配置一个多页面应用

  介绍

本篇文章给大家分享的是有关如何在vue中配置一个多页面应用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

<强> 1。新建vue项目

vue  init  webpack  vue_multiple_test   cd  vue_multiple_test   npm 安装

<强> 2。安装水珠

npm 小姐:glob ——save-dev

水珠模块用于查找符合要求的文件

<强> 3。目标结构目录

。   ├──README.md   ├──建造   │,,├──,build.js   │,,├──,check-versions.js   │,,├──,logo.png   │,,├──,utils.js   │,,├──,vue-loader.conf.js   │,,├──,webpack.base.conf.js   │,,├──,webpack.dev.conf.js   │,,└──,webpack.prod.conf.js   ├──配置   │,,├──,dev.env.js   │,,├──,index.js   │,,└──,prod.env.js   ├──generatePage.sh   ├──index . html   ├──package-lock.json   ├──package.json   ├──src   │,,├──,资产   ││,还以为;,└──,logo.png   │,,└──,页面   │,,,,├──,所述   │,,,,│,,├──,App.vue   │,,,,│,,├──,index . html   │,,,,│,,└──,index.js   │,,,,└──,所以page2   │,,,,,,├──,App.vue   │,,,,,,├──,index . html   │,,,,,,└──,index.js   └──,静态

其中,页面文件夹用于放置页面。所以page2 page 1和用于分别放置不同页面,且默认均包含三个文档:App.vue,指数。html,指数。js,这样在多人协作时,可以更为清晰地明确每个文件的含义。除此之外,此文件也可配置路由。

<强> 4。跑龙套增加下述代码:

const  glob =,需要(& # 39;一团# 39;)   const  PAGE_PATH =, path.resolve (__dirname, & # 39; . ./src/页# 39;)   const  HtmlWebpackPlugin =,要求(& # 39;html-webpack-plugin& # 39;)

其中:PAGE_PATH为所有页面所在的文件夹路径,指向页文件夹。

exports.entries =, function  (), {/*才能用于匹配,pages 下一级文件夹中的,index.js 文件,*/var 才能;entryFiles =, glob.sync(时间+ PAGE_PATH  & # 39;/*/index.js& # 39;)   var 才能;map =, {}   entryFiles.forEach才能((filePath),=祝辞,{   ,,,/*,下述两句代码用于取出,pages 下一级文件夹的名称,*/,,,var  entryPath =, path.dirname (filePath)   ,,,var  filename =, entryPath.substring (entryPath.lastIndexOf (& # 39; \/& # 39;), +, - 1)   ,,,/*,生成对应的键值对,*/,,,(文件名),地图=filePath   })才能   return 才能;地图   }

该方法用于生成多页面的入口对象,例如本例,获得的入口对象如下:

{,   ,,所述:& # 39;/用户/工作/学习/vue/vue_multiple_test/src/页面/page1/index.js& # 39;,   ,,所以page2: & # 39;/用户/工作/学习/vue/vue_multiple_test所以page2/src/页面//index.js& # 39;,   以前,}

其中:主要为当前页面的文件夹名称,

““价值”“为当前页面的入口文件名称

exports.htmlPlugin =, function  (), {   let 才能;entryHtml =, glob.sync(时间+ PAGE_PATH  & # 39;/*/index . html # 39;)   let 才能;arr =, []   entryHtml.forEach才能((filePath),=祝辞,{   ,,,var  entryPath =, path.dirname (filePath)   ,,,var  filename =, entryPath.substring (entryPath.lastIndexOf (& # 39; \/& # 39;), +, - 1)   ,,,let  conf =, {   ,,,,,模板:,filePath,   ,,,,,文件名:,filename  +,/index . html,   ,,,,,块:,(& # 39;清单# 39;,,& # 39;供应商# 39;,,文件名),   ,,,,,注入:真实   ,,,}   ,,,if  (process.env.NODE_ENV ===, & # 39;生产# 39;),{   ,,,,,let  productionConfig =, {   ,,,,,,,贬低:,{   ,,,,,,,,removeComments:,真的,,,,,,//,移除注释   ,,,,,,,,collapseWhitespace:,真的,,,,//,删除空白符和换行符   ,,,,,,,,removeAttributeQuotes:, true ,//,移除属性引号,   ,,,,,,,},   ,,,,,,,chunksSortMode:, & # 39;依赖# 39;,,//,对引入的块模块进行排序   ,,,,,}   ,,,,,conf =,{…相依,,…productionConfig},//合并基础配置和生产环境专属配置   ,,,}   ,,,arr.push (new  HtmlWebpackPlugin(参看))   })才能   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

如何在vue中配置一个多页面应用