本文主要讲了webpack怎么搭建多页应用,熟悉下webpack的基本用法。

新建文件夹,目录结构如下:

然后

  • cd webpack-test
  • npm init(根目录下创建了一个pakage.json)
  • npm install webpack@1.15.0 --save-dev(安装webpack,我这里用的是1版本)

根目录下新建webpack.config.js开始配置,参照这里

js部分的处理:

演示:在src > page > index下新建index.js随便输入一行代码,比如console.log('index'),修改webpack.config.js

在命令行输入webpack,可以看到根目录下多了个dist文件夹,src/page/index/index.js被打包到了dist/index.js里面,下面我们修改哈配置文件,让他可以打包多入口的情况

这样我们已经可以分别打包了,但是如果index > index.js 和 login > index.js同时引用了一个公共js,我们也希望可以把公共的东西提取出来单独打包,这就要用到webpack的插件CommonsChunkPlugin,参考这里,注意:webpack4中已经没有这个插件

现在让index > index.js 和 login > index.js 同时 require('./../common.js'),修改配置文件:
config里面添加代码:

plugins: [
new webpack.optimize.CommonsChunkPlugin({
name: 'common', // 对应入口处的common,会整体打包入common
filename: 'js/base.js'
// chunks: ['common']
})
]

这里用了new webpack.optimize.CommonsChunkPlugin,所以需要在前面var webpack = require('webpack')

index > index.js:

require('./../common.js')
console.log('index')

login > index.js:

require('./../common.js')
console.log('login')

再次打包,可以看到common.js被单独打包到了base.js

html部分的处理:html-webpack-plugin

上面已经可以打包js了,如果现在我们要测试打包的内容,需要在page > view 下新建index.html,引入dist/js下面的js,我们想把html也打包到dist,按需引入自己的js,参考这里

这里要用到插件,需要安装:npm i --save-dev html-webpack-plugin
参见文档修改配置: new HtmlWebpackPlugin({
// 打包后的目标文件
filename: 'view/index.html',
// 要打包的目标文件
template: 'src/view/index.html',
inject: true,
hash: true,
// 表示当前html引入公共js和与当前对应的js
// 需要引入哪些js
chunks: ['common', 'index']
})

执行webpack,可以看到打包成功,点开dist/view/index.html:

说明打包成功,base.js和index.js都正确引入
面对多页应用,我们还经常面临多个页面头部和底部相同的情况,每个页面去写未免有点麻烦,我们可以用html-loader解决这个问题
安装:npm install html-loader --save-dev

view下新建layout文件夹,再分别新建header.html和footer.html
heder.html:

<meta charset="utf-8">
<title></title>

footer.html:

<div>我是footer</div>

然后在index.html里面修改:

<!DOCTYPE html>
<html>
<head>
<%= require('html-loader!./layout/head.html') %>
</head>
<body>
index
<%= require('html-loader!./layout/footer.html') %>
</body>
</html>

再次打包,可看到:

到此,公共html也生效了,还剩下样式的处理和单独打包,下次继续
第一次写,有些凌乱

webpack多页应用的更多相关文章

  1. webpack 多页应用架构系列实战

    阅读目录 1.webpack配置了解 2.webpack CommonsChunkPlugin公共代码剥离 3.了解ProvidePlugin的用途 回到顶部 1.webpack配置了解 webpac ...

  2. 利用免费cdn加速webpack单页应用

    回顾现状 在之前的学习过程中,react单页应用经过webpack打包之后会输出大概如下的目录结构,它就是站点的所有前端组成了:   1 2 3 4 5 6 MacBook-Pro:output ba ...

  3. webpack 教程 那些事儿06-gulp+webpack多页

    本篇主要讲述用gulp+webpack构建多页应用 折腾到现在,项目还必须要进行,.vue文件必须要加载,也就是webpack必须引入.时间不多了,抛弃上个方案之后,只能牺牲热加载性能,用gulp+w ...

  4. webpack多页应用架构系列(一):一步一步解决架构痛点

    这系列文章讲什么? 前些时间,写过一个项目,前后端分离,没有借助任何框架,项目页面特别的多,页面都是html直接写的,许多公共html,写了好多处,有一个地方需要改就得改好多地方,js也是随意写,每个 ...

  5. gulp+webpack多页应用开发,webpack仅处理打包js

    项目背景:一个综合网站,开发模式为后端嵌套数据,前端开发静态页面和部分组件. 问题:gulp任务处理自动刷新.sass编译等都是极好的.但是对于js的处理并不是很好,尤其是项目需要开发组件时候,如评论 ...

  6. webpack 教程 那些事儿05-多页应用

    本篇主要关于如何用webpack构建多页应用 为什么要构建多页应用呢?因为我的项目本来就是多页应用啊至于为什么要用webpack?因为我要用vue啊,嫌gulp 每次打包慢 啊 文章目录 1. 利用v ...

  7. webpack 配置 Vue 多页应用 —— 从入门到放弃

    webpack 配置 Vue 多页应用 -- 从入门到放弃 一直以来,前端享有无需配置,一个浏览器足矣的优势,直到一大堆构建工具的出现,其中 webpack 就是其中最复杂的一个,因此出现了一个新兴职 ...

  8. webpack那些事儿

    webpack那些事儿01-webpack到底是什么 webpack那些事儿02-从零开始 webpack那些事儿03-热插拔 hot webpack那些事儿04-spa项目实战分析 webpack那 ...

  9. [React] react+redux+router+webpack+antd环境搭建一版

    好久之前搭建的一个react执行环境,受历史影响是webpack3.10.0和webpack-dev-server2.7.1的环境,新项目准备用webpack4重新弄弄了,旧的记录就合并发布了(在没有 ...

随机推荐

  1. vue中关于checkbox数据绑定v-model指令的个人理解

    vue.js为开发者提供了很多便利的指令,其中v-model用于表单的数据绑定很常见, 下面是最常见的例子: <div id='myApp'>     <input type=&qu ...

  2. Linux监控命令之==>lsof

    一.命令说明 lsof 命令的原始功能是列出打开的文件的进程,但LINUX 下,所有的设备都是以文件的行式存在的,所以,lsof 的功能很强大. 二.参数说明 -a :列出打开文件存在的进程 -c&l ...

  3. CSS 设计指南(第3版) 初读笔记

    第1章 HTML标记与文档结构 关于<title>标签:搜索引擎会给<title>标签中的文字内容赋予很高的权重.而且这些文字也会作为网页标题出现在搜索结果列表中. 无论你想了 ...

  4. golang remote debug和docker debug

    在编写 Go 代码的时候,因为很多时候都是需要调试服务器上的代码的,作为一个年长的工程师,肯定不能用 log.Printf 来调试问题,所以我选择了 delve 这个工具,通过 delve 我可以像本 ...

  5. windows上使用curl删除和查看ES索引

    首先使用curl获取集群中可用的Elasticsearch索引列表: $ curl http://<node-ip|hostname>:9200/_cat/indices <node ...

  6. 用poi从excel文档导入数据

    import org.apache.commons.lang3.StringUtils; import org.apache.poi.hssf.usermodel.HSSFWorkbook; impo ...

  7. H3C版本升级

    H3C S5500和S3100都可以通过TFTP方式进行升级,1.设置交换机的vlan1的ip地址,如10.10.10.2/242.设置电脑和交换机连接的ip地址,如10.10.10.1/243.在交 ...

  8. Dialupass v3.20 汉化绿色版 显示查看拨号上网密码

    Dialupass 显示查看拨号上网密码 拨号上网的密码不小心丢了怎么办?这个工具可以帮你!在紧要关头,它会让你体验到它的奇效!有备无患,快收藏这个小东东吧. 这是一款拯救忘记了拨号网络密码的使用者的 ...

  9. 2019JAVA第十一次实验报告

    #Java实验报告 班级 计科二班 学号 20188442 姓名 吴怡君 完成时间 2019.11.22 评分等级 简易记事本 实验代码 package Domon10; import java.aw ...

  10. zabbix4安装部署

    参考: https://www.cnblogs.com/barneywill/p/10380622.html https://www.cnblogs.com/yinzhengjie/p/1037256 ...