点击上方蓝色字关注我们~

一、前言

虽然 Vue3 已经公开了代码,但是Vue3.0还处于开发阶段,直接上手使用Typescript是不合适的 , 对于前端的老手是不错的选择, 但是如果没有研究源码经验的开发者还是建议使用完善, 成熟的源码进行入手. 而 Vue 2.x 中使用的 flow 是一个类型的校验工具, 可以简单的认为他是一个静态分析工具, 或编译检查工具. 而且非破坏式的引入, 完全可以作为我们一般开发任务的工具进行引入. 所以我们要简单介绍一下 flow 的使用, 一方面可以提升平时开发效率, 另一方面为了看明白 Vue 的源码也很有必要. 另外构建工具使用 Rollup, 因为 Vue 就是用的它, 简单明了, 比起 Webpack 没它强大, 但是够简单.

二、flow与rollup的基本用法  

flow这里推荐一下flow的官方地址,如果本章节有不够完善的地方,可以去官方进行详细的学习。https://flow.org/flow本身只是一个静态的语法检查工具优势:1.足够简单,合适使用2.可以为已有的项目,进行优化3.为typescript做一个铺垫准备使用:用法:1.使用命令行工具a.编写代码,执行命令检查如果有问题则提示,没问题跳过(和传统编译型语言 非常相似)2.使用IDE插件(推荐)a.也和现在编译语言一样,我们在编写完代码之后,错误信息IDE工具会给你提示出来(所见即所得)安装的内容:1.flow-bin它就是flow的静态类型检查工具(主程序)2.编译器(compiler),例如flow-remove-types,将类型的语法结构删除掉,还原成纯js的文件。安装:1.全局安装npm install --g flow-bind  项目目录安装npm install -D flow-bind2.npm init -y(-y默认全部yes快捷创建)创建package.json文件,在文件中的scripts中添加:使用命令:npm run flow init在项目文件夹的根目录创建一个.flowconfig文件npm run flow check对所有文件夹进行类型检查npm run flow启动Flow服务(只检查变化部分)flow执行Flow检查npm run flow stop停止Flow服务在被检查的文件最顶部添加 @flow 标识的注释对该文件进行检查flow 命令行工具的用法首先需要安装软件:$ npm i flow-bin flow-remove-types编写代码:代码中添加 一个 注释 // @flow 或者 /* @flow */在运行 flow 之前, 使用 npx flow init 初始化检查代码:$ npx flow注意:npx 是 node 工具, 是为了使用项目文件夹下 node_modules 中的可执行程序的工具。flow-remove-types将代码转换为纯 js 的代码npx flow-remove-types 源文件 -d 生成的文件一般会将该命令配置 到 package.json 文件中使用 IDE 插件:推荐使用 flow language support 这个插件 ( VS Code 编辑器 )Vue 源码说明:.flowconfig 中module.name_mapper='^sfc/(.*)$' -> '/src/sfc/\1' 的含义是将 代码中 from 后面导入模块使用的路径 sfc/xxx/aa 映射到 项目根目录/src/sfc/xxx/aarollup的基本用法官方地址:https://www.rollupjs.com/Rollup是一个javascript模块打包器,可以将小块代码编译成大块复杂的代码,例如library或应用程序。Rollup对代码模块使用新的准备化格式(es6模块语法)注意:a.版本, 生成文件的版本b.使用模块化的语法是ES6语法( http://es6.ruanyifeng.com/#docs/module )使用:c.安装 ( 局部 安装 )d.rollup 源文件的路径 --file 生成文件的路径 --format umd --name 生成的库的名字 

三、总结

webpack诞生的时候,为了解决css、图片等静态文件的构建和使得代码能够按需加载实现了code-splitting,在我们日常线上业务代码开发中,或多或少有一些静态资源需要打包,此时rollup显得不太适用。所以我们可以看到,在构建一些lib的时候可以选择rollup,而在构建一些应用的时候,选择webpack.

往期回顾

程序员择业疑惑:前端要凉?学习Vue还有必要吗?

牢记!前端工作中遇到99%的工作,都不能靠跳槽解决

前端这道“常见又讨厌”的面试难题,要怎么答?

技术大佬都在用碎片时间学习Vue充电,你竟然还能坐得住?

前端年度跳槽技术要求:不懂Vue千万别轻举妄动!!

·END·

极光学苑

带你飞向梦想的地方

微信号:极光训练营

谢谢你的“在看” ❤

vue 非es6 写法怎么按须加载_Vue源码必学指南:flow(语法检查)以及rollup(模板打包)...相关推荐

  1. Android开发之WebView加载HTML源码包含转义字符实现富文本显示的方法

    老套路先看效果图: WebView加载带有转移字符的HTML源码 再看转义后的字符的效果图: 先看WebView加载HTML源码的方法如下: webview.loadDataWithBaseURL(n ...

  2. Volley 图片加载相关源码解析

    转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/47721631: 本文出自:[张鸿洋的博客] 一 概述 最近在完善图片加载方面的 ...

  3. FPGA - Zynq - 加载 - FSBL源码解析1

    FPGA - Zynq - 加载 - FSBL源码解析1 前文回顾 FSBL的数据段和代码段如何链接 建个Example工程,不要光顾着看,自己动动手掌握的更快. 查看链接文件,原来存储空间是这样有条 ...

  4. vue 点击当前路由怎么重新加载_Vue 路由切换时页面内容没有重新加载的解决方法...

    第二次进入页面,页面路由参数已经改变,但是页面内容不会刷新. 问题原因:在组件mounted钩子中调用的刷新页面内容,但测试发现这个钩子没有被调用.后来发现App.vue中使用了: keep-aliv ...

  5. vue 点击当前路由怎么重新加载_vue如何刷新当前路由(router)页面的方法

    1.场景 在处理列表时,常常有删除一条数据或者新增数据之后需要重新刷新当前页面的需求. 2.遇到的问题 1. 用vue-router重新路由到当前页面,页面是不进行刷新的 2.采用window.rel ...

  6. 未能加载文件或程序集rsy3_abp vnext2.0之核心组件模块加载系统源码解析

    abp vnext是abp官方在abp的基础之上构建的微服务架构,说实话,看完核心组件源码的时候,很兴奋,整个框架将组件化的细想运用的很好,真的超级解耦.老版整个框架依赖Castle的问题,vnext ...

  7. abp vnext2.0之核心组件模块加载系统源码解析

    abp vnext是abp官方在abp的基础之上构建的微服务架构,说实话,看完核心组件源码的时候,很兴奋,整个框架将组件化的细想运用的很好,真的超级解耦.老版整个框架依赖Castle的问题,vnext ...

  8. MultiDex的加载dex源码分析

    工作流程 MultiDex的工作流程具体分为两个部分,一个部分是打包构建Apk的时候,将Dex文件拆分成若干个小的Dex文件,这个Android Studio已经帮我们做了(设置 "mult ...

  9. Android开发WebView之加载HTML源码修改HTML字体大小以及缩放HTML的方法

    老套路上图: 再看下缩放功能: 先说下设置HTML网页字体大小的方法: //设置网页字体大小webview.getSettings().setTextSize(WebSettings.TextSize ...

最新文章

  1. 总结:SQL的优缺点及与NoSQL对比
  2. linux下mysql的基本用法
  3. android wp主题,WP桌面:win10系统的最佳替代安卓应用
  4. unity获取电磁笔压感_【WPF】获取电磁笔的压感
  5. kubernetes k8s一文入门
  6. springboot使用curator实现服务的注册和发现
  7. Python 数据科学入门教程:TensorFlow 目标检测
  8. MingW环境下的windows编程
  9. Vultr 修改 Root 密码
  10. 台达PLC与台达DTE8路温控程序,威纶通触摸屏与温控器modbus485通讯
  11. 练习3 - 铲雪车(snow)
  12. 深大教学区Dr.com,实现校园网自动认证的请求
  13. win8dnf计算机内存不足,Win8电脑内存不足解决方法介绍
  14. Visitor模式实践
  15. QVector元素增删改
  16. Wannafly挑战赛27
  17. mysql触发器实验小结_mysql 触发器小结
  18. 通信接口:RS-232 / RS-422 / RS-485三者概述与区别
  19. eclipse + sakai
  20. Facebook的Libra “区块链”到底是如何运作的?

热门文章

  1. Android应用开发—FragmentManager如何管理fragments
  2. java中为什么使用上转型和下转型
  3. 集群,分布式,微服务的区别
  4. matlab采样频谱,Matlab对采样数据进行频谱分析
  5. 华为mate20能用鸿蒙吗,华为mate20可以用5g网络吗
  6. pcie1 4 速度_太阳系行星们谁转得最快?八大行星自转速度排行榜,地球排第五...
  7. excel统计行数_值得收藏的6个Excel函数公式(有讲解)
  8. this static 面向对象三大特点
  9. spring boot security 权限用postman测试_Spring Security(五):前后端权限控制详解
  10. linux上安装fio教程,fio工具安装及使用