介绍
本篇文章给大家分享的是有关如何在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中配置一个多页面应用