首页 > 代码库 > VUE2X实战开发随笔(二)
VUE2X实战开发随笔(二)
vue的单页面应用开发会把页面中所有的文件都会打包在build.js文件中,这样可能这个文件变得很大,对性能,体验都不是很好的选择;
单页面应用改为多页面应用的方法:
- 开始改造
最主要的一步,将webpack进行改造以满足对多页面需求的支持,其实多页面,即是webpack有多个入口。在此步中,我们主要的操作的对象是 build文件夹下的js文件。
- 首先,我们对 utils.js进行改造
- 添加一个方法:getEntries,方法中需要使用到node的globa模块,所以需要引入
// glob模块,用于读取webpack入口目录文件 var glob = require(‘glob‘);
exports.getEntries = function (globPath) {
- 其次,对webpack.base.conf.js进行改造
- 删除
entry: {app: ‘./src/main.js‘},,取而代之如下:
module.exports = {
···
entry: utils.getEntries(‘./src/module/**/*.js‘),
- 最后改造webpack.dev.conf.js和webpack.prod.conf.js
- 移除原来的HtmlWebpackPlugin
var pages = utils.getEntries(‘./src/module/**/*.html‘) for(var page in pages) { // 配置生成的html文件,定义路径等 var conf = { filename: page + ‘.html‘, template: pages[page], //模板路径 inject: true, // excludeChunks 允许跳过某些chunks, 而chunks告诉插件要引用entry里面的哪几个入口 // 如何更好的理解这块呢?举个例子:比如本demo中包含两个模块(index和about),最好的当然是各个模块引入自己所需的js, // 而不是每个页面都引入所有的js,你可以把下面这个excludeChunks去掉,然后npm run build,然后看编译出来的index.html和about.html就知道了 // filter:将数据过滤,然后返回符合要求的数据,Object.keys是获取JSON对象中的每个key excludeChunks: Object.keys(pages).filter(item => { return (item != page) }) } // 需要生成几个html文件,就配置几个HtmlWebpackPlugin对象 module.exports.plugins.push(new HtmlWebpackPlugin(conf)) }
打开工程
npm run dev
在dev.server.js 文件中有打开的路径,直接跟你想要打开的html文件名
如:var uri = ‘http://localhost:‘ + port +‘/xxx.html‘
VUE2X实战开发随笔(二)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。