问题:有哪些常见的Plugin?
解析:define-plugin:定义环境变量;
html-webpack-plugin:简化html文件创建;
uglifyjs-webpack-plugin:通过UglifyES压缩ES6代码webpack-;
parallel-uglify-plugin:多核压缩,提压缩速度webpack-bundle-;
analyzer:可视化webpack输出文件的体积;
mini-css-extract-plugin:CSS提取到单独的文件中,支持按需加载;
问题:有哪些常见的Loader?
解析:file-loader:把文件输出到个文件夹中,在代码中通过相对URL去引用输出的文件;
url-loader:和file-loader类似,但是能在文件很小的情况下以base64的方式把文件内容注入到代码中去
source-map-loader:加载额外的SourceMap件,以方便断点调试。
image-loader:加载并且压缩图片文件。
babel-loader:把ES6转换成ES5。
css-loader:加载CSS,支持模块化、压缩、文件导入等特性。
style-loader:把CSS代码注入到JavaScript中,通过DOM操作去加载CSS。
eslint-loader:通过ESLint检查JavaScript代码。
问题:webpack、rollup、parcel三者的优劣有哪些?
解析:webpack适用于大型复杂的前端站点构建:webpack有强大的loader和插件生态,打包后的文件实际上就是个立即执行函数,这个立即执行函数接收个参数,这个参数是模块对象,键为各个模块的路径,值为模块内容。立即执行函数内部则处理模块之间的引用,执行模块等,这种情况更适合件依赖复杂的应用开发。
rollup适用于基础库的打包,如vue、d3等,Rollup就是将各个模块打包进个文件中,并且通过Tree-shaking来删除无用的代码,可以最程度上降低代码体积,但是rollup没有webpack如此多的的如代码分割、按需加载等级功能,其更聚焦于库的打包,因此更适合库的开发。
parcel适用于简单的实验性项:他可以满足低门槛的快速看到效果,但是生态差、报错信息不够全面都是他的硬伤,除了些玩具项目或者实验项目不建议使用。
以上就是小科今天整理提供的Web前端开发面试题,希望为Web前端同学提供了有用的面试素材,以后小科每日均会提供Python、Web及MySQL数据库相关的习题。学习没有捷径,希望大家都能少走一些弯路,顺利找到工作!