在日常的项目开发中,我们会用到各种第三方库来提高效率,但随之带来的问题就是打包后的vendor.js体积过大,导致加载时空白页时间过长,给用户的体验太差.为此我们需要减少vendor.js的体积,从本质上来解决这种问题. webpack的外部扩展(externals)可以有效的解决.externals 配置选项提供了「从输出的 bundle 中排除依赖」的方法.相反,所创建的 bundle 依赖于那些存在于用户环境(consumer's environment)中的依赖.防止将某些 import…
webpack 把我们所有的文件都打包成一个 JS 文件,这样即使你是小项目,打包后的文件也会非常大.下面就来讲下如何从多个方面进行优化. 去除不必要的插件 刚开始用 webpack 的时候,开发环境和生产环境用的是同一个 webpack 配置文件,导致生产环境打包的 JS 文件包含了一大堆没必要的插件,比如 HotModuleReplacementPlugin, NoErrorsPlugin... 这时候不管用什么优化方式,都没多大效果.所以,如果你打包后的文件非常大的话,先检查下是不是包含了…
vue中webpack打包后vendor.xxx.js文件一般都特别大,其原因是因为我们引用的依赖都被压缩成一个js文件,这样会导致vendor文件过大.页面加载速度过慢,影响用户体验.所以我们就要把用不到的依赖都抽出来,在index.html用第三方引入! 话不多说,上代码! 依赖未抽出前打包: 依赖抽出之后打包: 在这里我把一般都会引入的element-ui抽出来了! 在build目录下找到文件修改如下: 添加这个对象属性:前面为依赖名称,这样打包的时候就不会把这两个依赖打包进vendor,…
一.babel支持 Babel其实是几个模块化的包,其核心功能位于称为babel-core的npm包中,webpack可以把其不同的包整合在一起使用,对于每一个你需要的功能或拓展,你都需要安装单独的包(用得最多的是解析ES6的babel-preset-es2015包和解析JSX的babel-preset-react包). 1.我们先一次性安装这些包,如果安装出错,小伙伴们可以一个一个安装. npm install --save-dev babel-core babel-loader babel-…
前面的文章介绍了webpack的devServer以及多入口多出口文件的配置,咱们继续往下学. 在开始学习接下来的知识之前,我们先回顾一下,前文提到了webpack的简单配置方法,但是只详细说了下入口和出口文件的配置,并没有更多的去解释其他选项的配置,比如loader,plugin等.那么咱们现在就来学一下module的配置.前面说过,module的主要作用就是通过loaders来配置,解析,转换不同类型的模块.比如说,可以把less,sass转换成css,可以把es6甚至es7语法转换成大部分…
在react中经常开发碰到不能热更中进行调试的,如IE之类的 这个时候我们就需要打包才能运行看到效果, 但是往往每次打包都需要很长的时间: 这个时候我们就可以直接找到打包后的文件,直接在改文件中修改: 但由于该文件是压缩过的,只有一行,无法阅读,所以可以通过chrome的sources,找到JS文件,在点击{}进行美化,再替换到本地的打包后的文件,即可进行断点等调试,这样可以实时保存看到效果,而不用再每次修改一点就打包等半天在看效果…
前后端分离的项目开发中,我们有开发环境.测试环境.预生产环境和生产环境. 1.开发环境下调试接口的时候,一般都会有好几个接口地址(开发服务器上的,本地的,接口开发人员的,七七八八的接口地址),要根据情况手动来切换接口地址. 2.打包时要部署项目到不同的环境,而这也需要每次都根据情况切换接口地址. 虽说手动来切换地址是可以满足需求的,但是这种方式实属不是一种较为优雅的处理方式.那么,我们换一种优雅一点的方式来解决. 通过修改配置文件,让启动和打包项目时根据不同的命令,达到预期的结果. 下面就以Vu…
打包命令: npm:npm run build yarn:yarn run build 路径:/config/index.js 是否产生map文件,置为false.…
从开通博客到现在也没写什么东西,最近几天一直在研究vue+webpack+element-ui项目打包速度优化,想把这几天的成果记录下来,可能对前端牛人来说我这技术比较菜,但还是希望给有需要的朋友提供一下方便. 一开始项目部署到线上后第一次访问首页的时间是7.8秒的样子,页面加载太慢了自己都接受不了何况用户. 主要是从一下几步来优化的: 1.vue路由的加载方式 import Home from '@/components/Index' 改为 const Index = resolve => r…
webpack 安装 npm 初始化,控制台输入 npm init -y webpack 安装 npm i webpack webpack-cli -D 新建 webpack.config.js const path = require('path') module.exports = { mode: "development", entry:'./src/index.js', output:{ filename:'bundle.js', path:path.resolve(__dir…