博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
webpack的分享
阅读量:7128 次
发布时间:2019-06-28

本文共 2612 字,大约阅读时间需要 8 分钟。

从前端的工程化开始谈

现在随便找个前端项目,都已经不是过去的拼个页面+搞几个jQuery插件就能完成的了。工程复杂了就会产生许多问题,比如:如何进行高效的多人协作?如何保证项目的可维护性?如何提高项目的开发质量和开发速度?

概念:前端工程化是使用软件工程的技术和方法来进行前端项目的开发、维护和管理

软件工程的概念:应用计算机科学理论和技术以及工程管理原则和方法,俺预算和尽速,实现满足用户要去的软件产品的定义、开发和维护的工程或研究的学科

前端工程化主要包括:模块化、组件化、规范化、自动化

模块化        js模块化(CommonJs AMD CMD)模块加载方式        现在的es6已经在语言层面规定了模块系统 export import        资源模块化(css img)    组件化         组件化和模块化的区别是是颗粒程度上面的区别    规范化        目录结构        前后端接口规范发        分支管理(test master 个人分支)        commit描述规范        编码规范        图标的规范        命名规范        定期的CodeReview        .......    自动化        持续集成        自动化构建(webpack)        自动化部署        自动化测试复制代码

构建工具的介绍

webpack的优化

1. webpack的tree-shaking    自带的:treeshaking: js-shaking(只能简单的检测exprots, 并不能检查是否在当前作用域中是否执行) css-shaking    相关plugin: webpack-deep-scope-plugin                purifycss-webpack2.  webpack magic comments (webpack3里面刚更新的)3.  optimization配置 (代码分离, 按需加载)        runtime : webpack 运行时        common: 公共的包        main: 启动页所需要放的东西,主业务        async-test: 异步业务4. 开启多核压缩    uglifyjs-webpack-plugin        注意: 压缩es5的代码,需要转es5, 否则报错        网址:            https://www.npmjs.com/package/uglifyjs-webpack-plugin    webpack-paraller-uglify-plugin        支持 es5 es6代码压缩        uglifyJS uglifyES5.  监控你的面板        speed-measure-webpack-plugin6.  开启一个通知面板        webpack-notifier        网址:        https://www.npmjs.com/package/webpack-notifier3.7 开启打包进度        progress-bar-webpack-plugin    线上优化        1、es6不需要编译(babel-loader)            大多数浏览器支持了, 但是某一些api还是浏览器没有更新支持            https://cdn.polyfill.io/v2/polyfill.min.js?features%20=Map,Set        2、前端缓存 小负载 webapp            前端缓存的话是有很多依赖的, 例如 localstorage sessionstorage indexdb cookie            a.js -》 a.xxx.jsf            a.xxx.js -> 代码             后台每次计算当前包有没有发生变化             webpack-manifest-plugin 生成一个manifest.json的文件        3、真正的loadding            首屏渲染,单独的管理        4、 单页问题 多页转单页            webapp 性能好,做直出,减少请求的数量        5、分析打包结果            监控文件大小 bundlesize             webpack-analyse            http://webpack.github.com/analyse        6、test exclude include 非常重要 很快        7、压缩js css            压缩js:                webpack-paraller-uglify-plugin                happpack 针对ts-loader             压缩css:                Cssnano: https://github.com/iuap-design/blog/issues/159                optimize-css-assets-webpack-plugins: 多核的压缩你的css        8、devtool eval            https://www.webpackjs.com/configuration/devtool/        9、cache-loader  来做loader的缓存,加快编译的速度 增量式的复制代码

4、构建一个多页mpa 落地用多页,切换用单页(应用的最佳方式) 前端的路由都是假的,spa中首次进入需要请求大量的js, css,我们期待直出 next(vue) nuxt(react) nest(node)

转载于:https://juejin.im/post/5be42ce7e51d45685621a20c

你可能感兴趣的文章
第十八章:MVVM(二)
查看>>
进程调度(二)
查看>>
python元组,集合类型,及字典补充
查看>>
9、python函数进阶
查看>>
Markdown一看就会
查看>>
dotweb——go语言的一个微型web框架(一)
查看>>
又是一个名叫草泥马的项目:thefuck
查看>>
《七周七并发模型》作者Paul Butcher访谈问题有奖征集
查看>>
linux基本功能的一些命令(用户,系统信息,包管理等)
查看>>
使用 dnscrypt-proxy 防止 dns 污染
查看>>
专访孙睿 :能做自己,去做自己想做的,是件挺幸福的事儿
查看>>
滴滴开源跨平台统一 MVVM 框架 Chameleon
查看>>
玖锦科技完成1.1亿元融资,中信惠科基金领投
查看>>
JavaWeb_常用功能_01_文件上传
查看>>
Git for Windows 2.21.0 发布,Win 下的 Git 客户端
查看>>
JSON和XML格式转换
查看>>
XXL-RPC v1.3.2,分布式服务框架
查看>>
将c++静态库实现二次封装供java调用
查看>>
在阿里云kubernetes上部署Jenkins Master
查看>>
VueJs开发笔记—IDE选择和优化、框架特性、数据调用、路由选项及使用
查看>>