一.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有没有做过分包?

        优化小程序的下载和启动速度

        小程序启动默认下载主包并启动页面,当用户进入分包时,才会下载对应的分包,下载完进行展示

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐