webpack,npm,git,Echarts,Uni-APP常见问题
webpack,npm,git,Echarts,Uni-APP常见问题
一.webpack
1.webpack打包和不打包的区别?
1.运行效率
2.对基础的支持不够
2.webpack是怎么打包的,babel是做什么的?
webpack会把js css image看作一个模块,用import/require引入
找到入口文件,通过入口文件找到关联的依赖文件,把他们打包到一起
把bundle文件,拆分成多个小的文件,异步按需加载所需要的文件
如果一个被多个文件引用,打包时只会生成一个文件
如果引用的文件没有调用,不会打包,如果引入的变量和方法没有调用也不会打包
对于多个入口文件,加入引入了相同的代码,可以用插件把他抽离到公共文件中
来自 <webpack性能优化方案_lynn6020的博客-CSDN博客>
3.webpack性能优化方案
来自 <webpack性能优化方案_lynn6020的博客-CSDN博客>
webpack性能优化从两个方向来考虑:优化打包速度和优化打包文件大小
一, 优化打包速度
1.webpack区分环境配置文件,避免加载多余的插件。
2.对 webpack 的 resolve 参数进行合理配置,减少查找过程。
3.缩小构建目标,排除 Webpack 不需要解析的模块。即使用 loader 的时候,在尽量少的模块中去使用。我们可以借助 include 和 exclude 这两个参数,规定 loader 只在那些模块应用和在哪些模块不应用。
4>利用多线程提升构建速度。多线程常用插件有HappyPack和thread-loader,HappyPack 的作者现在基本上不维护这个插件了,所以我们可以用thread-loader配置多线程
5.预先编译资源模块(DllPlugin)。
6.缓存 Cache 相关
(1)babel-loader开启缓存:
(2)在一些性能开销较大的 loader 之前添加 cache-loader,以便将结果缓存到磁盘里
7.合理使用 sourceMap
在开发环境,我们的要求是:快,能够定位到源码的出错位置
所以一般来说选择:cheap-module-source-map
线上环境的话,我们是不能让使用者可以看到source-map的,所以使用hidden-source-map,配合前端监控系统
二. 优化文件体积
1. wepack区分环境配置文件 。
建议把webpack.config.js文件拆分为webpack.common.js,webpack.dev.js和webpack.prod.js,这样把类似HMR之类的开发环境用到的包去掉。
2.js压缩
使用terser-webpack-plugin ,也可用 uglifyjs-webpack-plugin,两者的区别是后者对 ES6 的压缩不是很好
3.css压缩
使用css-minimizer-webpack-plugin
使用方式:const CssMinimizerPlugin=require("css-minimizer-webpack-plugin")
4. 拆分代码(code Spliting)减少main.js包的体积
使用splitChunks选项
5.去除不引用的代码(tree-shaking)
注意:tree-shaking 只在mode为production生效
需要手动开启:
webpack.config.js设置:optimization:{useExports:true}
另外:package.json需要设置为false,防止忽略 “import form './index/css” 之类的文件引用
"sideEffects":false,//所有的模块需要监控 .["*.css"] 排除css监控
6. "babel/preset-env"开启按需加载。
babel的polyfill总是比较大,会影响一些性能,而且也会有一些没用的polyfill,useBuiltIns的按需加载:usage,可减少polyfill的体积.
配置中设置useBuiltIns:usage,babel就会自动把所需的polyfill加载进来,不需要手动import polyfill文件。
3>使用最新版本的webpack,打包速度会更快
二.npm,git
1.npm的底层环境是什么?
node package manager,node的包管理和分发工具,已经成为分发node模块的标准,是JS的运行环境
npm的组成:网站、注册表、命令行工具
2、Git
1.git如何合并、拉取代码?
拉取代码 git pull '仓库地址'
查看状态 git sattus
提交到本地缓存区 git add .
提交本地仓库 git commit -m '修改描述'
提交到远程仓库 git push '仓库地址' master
创建分支 git branch -b xxx
合并分支 git merge '合并分支的名字'
2.git如何解决冲突问题?
1.两个分支中修改了同一个文件
2.两个分支中修改了同一个文件的名字
1.解决:当前分支上,直接修改代码 add commit
2.解决:在本地当前分支上,修改冲突代码 add conmmit push
三、Echarts
1.echarts有用过吗?常用的组件有哪些?
title标题组件 show text link
toolbox工具栏 导出图片 数据视图 切换 缩放 show orient feature
tooltip tigger 触发类型
markPoint标注点
markLine图标的标线
四、Uni-APP
1.uni-app有没有做过分包?
优化小程序的下载和启动速度
小程序启动默认下载主包并启动页面,当用户进入分包时,才会下载对应的分包,下载完进行展示
更多推荐
所有评论(0)