一.解决什么问题 1.如果a.js和b.js都引用了common.js,那在打包的时候common.js会被重复打入到a.js和b.js,造成重复打包 2.单独打包common.js对性能有帮助,浏览器下载一次后会缓存下来,不会重复下载 二.未抽取公共代码的状况 基于之前代码,测试如下: 1.在assets/js文件夹下新建common.js,输入如下代码: export function printCommon(){ console.log("common"); } 2.在src/i…
本系列主要介绍如何基于webpack实现多html页面开发框架,这里不讲webpack的基本概念,废话不多说,直奔主题! 前置条件: 1.安装node环境,自己去官网下载安装 2.新建文件夹webpack4_multi_page_frame,进入文件夹,运行npm init -y命令初始化 3.安装webpack和webpack-cli 运行命令npm install webpack webpack-cli --save-dev 实现的功能: 1.普通前端项目多html页面使用webpack打包…
本节主要介绍webpack打包的时候CSS的处理方式 一.解决什么问题      1.CSS打包      2.CSS处理浏览器兼容      3.SASS支持      4.CSS分离成单独的文件 二.创建目录结构 创建项目目录结构:参照上图创建即可 三.需要安装的包 style-loader:将 JS 字符串生成为 style 节点:       css-loader: 将 CSS 转化成 CommonJS 模块;  这两个合到一个命令:npm install --save-dev styl…
一.解决什么问题 1.html中img引入的图片地址没有被替换,找不到图片 2.html公共部分复用问题,如头部.底部.浮动层等 二.html中img引入图片问题解决 1.在index.html插入img,引用图片<img src="../../assets/img/test.jpeg"> 2.npm run dev运行结果如下: 因为图片地址没有被替换为打包后的地址, 所以找不到图片   3.需要使用的包:html-withimg-loader,安装命令:npm inst…
一.解决什么问题      1.开发环境js.css不压缩,可在浏览器选中代码调试      2.开发环境运行http服务指向打包后的文件夹      3.babel输出浏览器兼容的js代码 二.需要安装的包 babel-loader:输出浏览器兼容的js代码:命令: npm install --save-dev babel-loader @babel/core @babel/preset-env webpack-dev-server: 快速搭建本地运行环境:命令: npm install we…
一.解决什么问题      1.手写页面多入口,一个一个输入太麻烦,通过代码实现      2.手写多个htmlWebpackPlugin插件太麻烦,通过代码实现 二.多入口代码实现 //读取所有.js文件,动态设置多入口 function getEntry() { var entry = {}; //读取src目录下page下的所有.js文件 glob.sync('./src/pages/**/*.js') .forEach(function (name) { let start = name…
一.解决什么问题      1.图片路径替换.并输出到打包目录      2.输出目录清理 二.需要安装的包 file-loader:html.css中图片路径替换,图片输出到打包目录:命令:npm install --save-dev file-loader url-loader: 在文件大小(单位 byte)低于指定的限制时,可以返回一个 DataURL,其依赖于file-loader:命令:npm install --save-dev url-loader clean-webpack-pl…
一.解决什么问题 1.如何引入第三方库,如jquery等 二.引入jquery方法 1.下载jquery.min.js放到assets/lib下面 2.安装copy-webpack-plugin,将已经存在的单个文件或整个目录复制到构建目录.命令:npm install copy-webpack-plugin --save-dev 3.在webpack.config.js进行配置,打包的时候把lib目录拷贝到构件目录,配置如下: //拷贝不进行打包的第三方库 new copyWebpackPlu…
为什么需要提取公共代码 大型网站通常会由多个页面组成,每个页面都是一个独立的单页应用. 但由于所有页面都采用同样的技术栈,以及使用同一套样式代码,这导致这些页面之间有很多相同的代码. 如果每个页面的代码都把这些公共的部分包含进去,会造成以下问题: 相同的资源被重复的加载,浪费用户的流量和服务器的成本: 每个页面需要加载的资源太大,导致网页首屏加载缓慢,影响用户体验. 如果把多个页面公共的代码抽离成单独的文件,就能优化以上问题. 原因是假如用户访问了网站的其中一个网页,那么访问这个网站下的其它网页…
这节课讲解webpack4打包多页面应用过程中的提取公共代码部分.相比于webpack3,4.0版本用optimization.splitChunks配置替换了3.0版本的CommonsChunkPlugin插件.在使用和配置上,更加方便和清晰. >>> 本节课源码 >>> 所有课程源码 1. 准备工作 按照惯例,我们在src/文件夹下创建pageA.js和pageB.js分别作为两个入口文件.同时,这两个入口文件同时引用subPageA.js和subPageB.js,…