从前端的工程化开始谈

现在随便找个前端项目,都已经不是过去的拼个页面+搞几个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-pluginpurifycss-webpack
2.  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-pluginwebpack-paraller-uglify-plugin支持 es5 es6代码压缩uglifyJS uglifyES
5.  监控你的面板speed-measure-webpack-plugin
6.  开启一个通知面板webpack-notifier网址:https://www.npmjs.com/package/webpack-notifier
3.7 开启打包进度progress-bar-webpack-plugin线上优化1、es6不需要编译(babel-loader)大多数浏览器支持了, 但是某一些api还是浏览器没有更新支持https://cdn.polyfill.io/v2/polyfill.min.js?features%20=Map,Set2、前端缓存 小负载 webapp前端缓存的话是有很多依赖的, 例如 localstorage sessionstorage indexdb cookiea.js -》 a.xxx.jsfa.xxx.js -> 代码 后台每次计算当前包有没有发生变化 webpack-manifest-plugin 生成一个manifest.json的文件3、真正的loadding首屏渲染,单独的管理4、 单页问题 多页转单页webapp 性能好,做直出,减少请求的数量5、分析打包结果监控文件大小 bundlesize webpack-analysehttp://webpack.github.com/analyse6、test exclude include 非常重要 很快7、压缩js css压缩js:webpack-paraller-uglify-pluginhapppack 针对ts-loader 压缩css:Cssnano: https://github.com/iuap-design/blog/issues/159optimize-css-assets-webpack-plugins: 多核的压缩你的css8、devtool evalhttps://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

webpack的分享相关推荐

  1. 工作两年,你有没有觉得很吃力?(干货经验分享)

    点击上方"蓝色字体",选择"设为星标" 做积极向上的前端人! 转自:知乎 https://www.zhihu.com/question/425782106/an ...

  2. 究竟什么是前端脚手架?

    ? 咱也不知道咱也不敢问啊 先查查百度百科里对"脚手架"的定义吧: 脚手架是为了保证各施工过程顺利进行而搭设的工作平台. 然后搜一下"脚手架",基本上都是以下几 ...

  3. 66岁比尔盖茨离婚!27年前与下属恋爱修成正果,现在“无法共同成长”,分割8000亿财产

    贾浩楠 发自 凹非寺  量子位 报道 | 公众号 QbitAI 66岁的比尔·盖茨,离婚了. 六个小时前,北京时间5月4日凌晨4点30分,盖茨在推特上发布离婚声明. 盖茨27年的婚姻,最终以一句&qu ...

  4. js怎么定义combobox_好程序员web前端教程分享新手应该怎么学习webpack

    好程序员web前端教程分享新手应该怎么学习webpack,什么是webpack?一句话概括:webpack是一个模块打包工具(module bundler).重点在于两个关键词"模块&quo ...

  5. 关于使用Webpack时报出:ERROR IN MULTI ./src/main.js .dist/bundle.js 错误的分享

    关于Vue使用webpack时出现的"ERROR IN MULTI ./src/main.js .dist/bundle.js Module nor found:Error:Can't re ...

  6. Webpack: Loader 开发分享

    Webpack: Loader 开发分享 文章目录 Webpack: Loader 开发分享 正文 1. Concept 概念 2. Configuration 配置实例 3. Custom 自定义 ...

  7. Webpack 插件: webpackbar progress-bar-webpack-plugin 进度条插件分享

    Webpack 插件: webpackbar & progress-bar-webpack-plugin 进度条插件分享 文章目录 Webpack 插件: webpackbar & p ...

  8. Vue+ElementUI项目使用webpack输出MPA【华为云分享】

    [摘要] Vue+ElementUI多页面打包改造 示例代码托管在:http://www.github.com/dashnowords/blogs 博客园地址:<大史住在大前端>原创博文目 ...

  9. java webpack web项目_零基础如何学习web前端,入门教程分享

    前端作为互联网时代直接触达用户的窗口,大到我们每天浏览到的网站,小到一次点击按钮的页面,前端无处不在.并且在产品的众多开发环节之中,最能让用户直观感受到的就是前端开发.因而前端行业的广阔发展前景也吸引 ...

最新文章

  1. R语言str_extract函数从字符串中抽取匹配模式的字符串
  2. 【消息中间件】浅谈中间件优缺RabbitMQ基本使用
  3. OpenGL:使用FBO为渲染对象并从GPU取出存图
  4. 数据库 oracle 设计三范式
  5. UNUSED参数,这个宏,很秀
  6. Flutter StreamController 异步通信、Stream 流异步通信
  7. 基于Python的HTTP接口测试
  8. 企业项目开发--cookie(3)
  9. 微信“小程序 未完, 数据的小程序 又来了
  10. 什么软件测试内存稳定性,喜大普奔:内存稳定性工具Memtest终有Windows版
  11. 数电——全减器分析(用74HC138设计提示)
  12. matlab全安装多大_COMSOL Multiphysics 5.3 软件安装教程
  13. 微信小程序 服务通知
  14. JAVA数据库访问控制框架设计与使用
  15. 如何在Excel中快速删除空白行
  16. ie8 css hack 只适用ie8的css写法
  17. java共享充电宝管理系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
  18. 【突发】Telsa致命车祸细节报告:人为设定超速15%(下载)
  19. MT7628平台编程设计指南资料
  20. 元旦在家撸了两天Seata源码,你们是咋度过的呢?

热门文章

  1. Redis的hotkey和bigkey的一些拆解方式
  2. 电位器替换遥控器做远程遥控方案,远程控制云台方案
  3. 在VB6.0中怎么实现escape和unescape
  4. 图灵奖得主华人高徒发布首款AI芯片!64位RISC-V、高度可编程,低功耗
  5. 活动推荐 | 首届“中新人工智能高峰论坛”,与周志华、李德毅等大咖对话未来...
  6.  ̄□ ̄他咬了蜘蛛一口,从此蜘蛛精通C语言
  7. 已经不需要司机的Waymo无人车,何时才能摆脱后座待命的工程师?
  8. 达拉草201771010105《面向对象程序设计(java)》第十七周学习总结
  9. Android 性能优化工具 TraceView 简单使用
  10. php 简单日志搜索