同事套搭建vue项目,个人推荐了VUE官网的vue-cil的方式,http://cn.vuejs.org/guide/application.html
顺着官网的操作,我们可以本地测试起我们的项目 npm run dev,首先我们要理解webpack打包主要是针对js,查看下面生成的配置,首页是index.html,模版用的index.html,入口文件用的mian.js
//file build/webpack.base.conf.js //entry 配置 module.exports = { entry: { app: './src/main.js' }, //.... //file build/webpack.dev.conf.js //html配置 new HtmlWebpackPlugin({ filename: 'index.html', template: 'index.html', inject: true })
1.上面的目录没办法满足我们多入口的要求,我们希望的是html放在一个views文件夹下面,相关业务应用的vue放在一起,对就是这个样子的
我们先简单的改动下我们的配置,来适应这个项目结构,再寻找其中的规律,来完成自动配置(index.html)
//file build/webpack.base.conf.js //entry 配置 module.exports = { entry: { 'index': './src/view/index/index.js', 'login': './src/view/login/login.js', }, //.... //file build/webpack.dev.conf.js //html配置,index我们保留了根目录访问路径 new HtmlWebpackPlugin({ filename: 'index.html', template: './src/view/index/index.html', inject: true, chunks: ['index'] }), new HtmlWebpackPlugin({ filename: 'login/login.html', //http访问路径 template: './src/view/login/login.html', //实际文件路径 inject: true, chunks: ['login'] })
2.规律出来了,我们只要按照这样的js和html的对应关系,就可以通过查找文件,来进行同一配置
var glob = require('glob') function getEntry(globPath, pathDir) { var files = glob.sync(globPath); var entries = {}, entry, dirname, basename, pathname, extname; for (var i = 0; i < files.length; i++) { entry = files[i]; dirname = path.dirname(entry); extname = path.extname(entry); basename = path.basename(entry, extname); pathname = path.join(dirname, basename); pathname = pathDir ? pathname.replace(pathDir, '') : pathname; console.log(2, pathname, entry); entries[pathname] = './' + entry; } return entries; } //我们的key不是简单用的上一个代码的index,login而是用的index/index,login/login因为考虑在login目录下面还有register //文件路径的\\和/跟操作系统也有关系,需要注意 var htmls = getEntry('./src/view/**/*.html', 'src\\view\\'); var entries = {}; var HtmlPlugin = []; for (var key in htmls) { entries[key] = htmls[key].replace('.html', '.js') HtmlPlugin.push(new HtmlWebpackPlugin({ filename: (key == 'index\\index' ? 'index.html' : key + '.html'), template: htmls[key], inject: true, chunks: [key] })) }
3.多入口配置就完成了,当然下面其实还有公共js提取的相关配置,如果项目里面用到了异步加载,即require.ensure,放在单独目录,进行匹配,按照上面的逻辑进行推理吧
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
无争山庄资源网 Copyright www.whwtcm.com
暂无“详解webpack 多入口配置”评论...
更新日志
2024年11月15日
2024年11月15日
- 文章.2004-被遗忘的时光【华博音乐】【WAV+CUE】
- 群星《青葱韶歌》原力计划·毕业季企划合辑[FLAC+分轨][661M]
- 群星《抖烧 DSD》抖音神曲 [WAV分轨][992M]
- 庾澄庆《哈林天堂》索尼音乐[WAV+CUE][1G]
- 英雄联盟全球总决赛多久打一次 全球总决赛举办频率介绍
- 第二届老头杯什么时候开始选人 第二届老头杯选人时间介绍
- 英雄联盟第二届老头杯什么时候开始 老头杯s2赛程时间队伍名单汇总
- AI赋能卓越显示技术共筑数字未来:三星显示器产品矩阵亮相2024进博会
- 技术剖析:天玑9400如何打造移动最强GPU和游戏体验?
- 顶级装备 实力登顶:三星显示器双十一焕新升级最后冲刺
- 陈影《绝色靓声》WAV+CUE
- 龚玥《禅是一枝花(6N纯银SQCD)》原抓WAV+CUE
- 刘德丽《寂寞在唱歌HQCD+A2HD5》[WAV+CUE]
- 萧亚轩《钻石糖》金牌大风[WAV+CUE][989M]
- 王菲《王菲精选-菲卖品》环球唱片SHM-SACD[ISO][1.9G]