2019独角兽企业重金招聘Python工程师标准>>>

1.3 dva 脚手架目录分析

在上一节中,介绍了如何使用 dva-cli 命令行工具来创建一个 dva 脚手架工程。

这一节来就自动创建的脚手架目录结构来分析一下脚手架都为我们做了哪些事情。

目录结构

下面就右边列举的 7 条在逐个分析目录结构的组成。

这里只会介绍某个文件夹或文件是做什么的,具体涉及到技术层面的参见后面章节对每个技术模块的专讲。

希望看完之后再回过头看目录结构的时候能做到“原来如此”的表情。

分析

1.自动创建一个包含 package.json 的项目

package.json 文件

在很久很久以前,dk 要开发一个前端项目,在计算机的某个旮沓地方建立了一个文件夹叫 dk_project,就称为这是一个“项目”了。又过了很久,dk 离开了公司,来了位新同事,在接手 dk 工作的时候发现计算机上面的 dk_project 文件夹,因为没有任何明显的标识,
就被当成普通文件夹给 DELETE 掉了。回到现代,随着 npm 的诞生,人们意识到建立一个项目目录不应该这么草率,于是乎规定,
如果某个文件夹被创建作为一个项目目录,那么它就应该包含一个 package.json 的文件。package.json 文件里记录项目的描述信息:项目作者、项目描述、项目依赖哪些包、插件配置信息等等数不清的好处。

在 npm 那一讲中将会详细介绍 package.json 文件的组成以及如何去自定义这个文件。

2.自动创建成体系的目录结构

public 文件夹src 文件夹

一个项目,如果目录结构很混乱,从心理学角度上来说会让你的心情变的 bad,进而容易产生 bug,
在查找 bug 的时候再次由于目录结构的混乱而变得暴怒 ..... 循环下去,项目烂尾是小事,不小心因此变得神经质就不好啦。良好的目录结构应该是条理清晰,每个文件夹都有具体的事情要做。这样写代码才能像做一件艺术品一样,身心得到满足与慰藉。

在项目目录中:

  • public 文件夹中存放静态资源,比如图片,静态页面 html 等。

  • src 文件夹是项目代码存放文件夹,里面又分了几个小目录,每个目录都负责具体的事情,这个需要在实际项目中进行讲解。

3.自动安装项目需要的基础包

node_modules 文件夹(如果你对依赖包的概念不清晰,可以看 npm 章节的介绍)

前面说到 package.json 中会记录项目需要依赖的基础包。

使用 npm install 指令可以安装这些依赖包,安装到项目根目录下的 node_modules 文件夹下

一个项目中纯代码是很小的,占容量的是 node_modules 目录下的依赖包。普通的项目往往可以达到100-200M,而对应的纯项目代码1-5M。现在 dk 想将最近开发的一个项目分享给同事 tiger,只需要将项目纯代码拷贝给 tiger 即可。
因为项目依赖的包都记录下 package.json 文件中,而在命令行中使用 npm install 指令就可以自动下载 package.json 自动记录的依赖包。

4.集成代码检查工具 ESLint

.eslintrc 文件 (如果你对代码检查工具不熟悉,可以看 ESLint 章节的介绍)

代码检查工具制定统一规则,然后项目中所有人都得遵守这一套规则去写代码,这样写出来的代码在客户面前就像是一个人写的一样。**.eslintrc 文件就是记录规则的配置文件**。到这里,你肯定好奇具体规则是什么,这事情 ESLint 工具都帮你制定好了,
你只需要去 [ESLint 规则配置](http://eslint.cn/docs/rules/) 里去查看规则即可。如果你还要学习 ESLint 更深层次的知识又嫌弃官网太罗里吧嗦,可以看后面章节 ESLint 的专讲。

5.集成模拟接口工具 Mock

mock 文件夹.roadhogrc.mock.js 文件

写前端的都知道,最烦恼的事情莫过于没有服务提供数据接口,写出的前端代码没法测试。Mock 就是干这个的,让一个前端程序员可以通过最熟悉不过的 js 文件简单配置模拟服务端提供的接口,可以造假数据,**“搞的就跟真的一样”**。本文没有适用 dva 自带的 Mock 做模拟接口,而是使用更轻量级的 json-server 来做模拟服务接口,不会的可以在后面章节学习.roadhogrc.mock.js 文件:Mock 是个独立的技术,你得把它用到框架里来不是,所以就有了这个文件。

6.集成服务启动打包工具 Roadhog

.roadhogrc 文件

先来说点有趣的事情。dva 的作者 sorrycc 是个守望先锋玩家。dva 这个名字是守望先锋游戏里一个英雄的名字(女性英雄,瞬间秒懂),
而 roadhog 同样是守望先锋的另一名英雄,长得五大三粗,在游戏里叫做“路霸”。意思就是 roadhog 为 dva 守架护航。roadhog 是为 dva 服务的,可以认为是 dva 的配置文件。

通过它可以做到以下几件事情(当然远不止这些,其它可看 Roadhog 专讲)

  • 与其它插件集成;
  • 启动服务:roadhog server;
  • 打包项目:roadhog build。

7.集成版本控制工具 Git

.gitingore 文件

这是 Git 专有的文件,用于管理项目版本。具体三言两语道不清说不明,建议直接去看下 Git 的教程之后这个文件就清楚干嘛的啦。

转载于:https://my.oschina.net/dkvirus/blog/1058203

dva 脚手架目录分析相关推荐

  1. dva脚手架创建的项目目录结构分析

    安装dva脚手架:npm install -g dva-cli 查看dva版本:dva -v 使用脚手架构建项目:dva new project 等待构建完成后,cd project中,执行npm s ...

  2. 基于Umi搭建的个人Dva脚手架(五) - 可配置的搜索、弹窗组件封装

    1.基本概述    在上一篇博客:基于Umi搭建的个人Dva脚手架(四) - 可配置的表单组件封装中,已经详细介绍了通过配置生成表单组件的方法,在开发中我们不必过分关心view层的编码,可以减少重复代 ...

  3. 创建一个 dva 脚手架工程

    2019独角兽企业重金招聘Python工程师标准>>> 1.2 dva 安装 使用 dva-cli 命令行工具安装 dva.(本文假设已掌握 npm 基础知识) 安装 dva-cli ...

  4. 【Android 逆向】Android 系统中文件的用户和分组 ( 文件所有者与分组 | /sdcard/ 的文件分组 | /data/ 目录分析 | 用户类型 )

    文章目录 一.文件所有者与分组 二./sdcard/ 的文件分组 三./data/ 目录分析 四.用户类型 一.文件所有者与分组 使用 ls -l 命令 , 查看 Android 系统根目录 , 下图 ...

  5. reactjs脚手架目录结构说明

    reactjs脚手架目录结构说明

  6. Linux 内核获取、初次编译、源码目录分析

    目录 Linux 内核获取 Linux 内核初次编译 Linux 内核源码目录分析 1.arch 目录 2.block 目录 3.crypto 目录 4.Documentation 目录 5.driv ...

  7. Android_项目文件结构目录分析

    android项目文件结构目录分析 在此我们新建了一个helloworld的项目,先看一些目录结构: 这么多的文件夹和文件中,我们重点关注是res目录.src目录.AndroidManifest.xm ...

  8. uboot的目录分析

    以下内容源于朱有鹏嵌入式课程的学习,如有侵权,请告知删除. 一.文件分析 1.九鼎官方uboot和三星原版uboot对比 不同版本的uboot或者同一版本不同人移植的uboot,目录结构和文件内容都会 ...

  9. oracle目录解析,Oracle目录分析与比较

    当前位置:我的异常网» 数据库 » Oracle目录分析与比较 Oracle目录分析与比较 www.myexceptions.net  网友分享于:2015-08-26  浏览:1次 Oracle索引 ...

最新文章

  1. 工业机器人电路图讲解话术_燃气传感器技术在防爆喷涂机器人中的应用
  2. Lexer的设计--中(4)
  3. 人脸识别可以分辨同性恋?论科技研发和伦理道德之间的矛盾
  4. 小米新机将搭载鸿蒙,小米新機將搭載鴻蒙係統?還得等鴻蒙進一步的消息!
  5. java delphi 三层_三层架构delphi+Java+Oracle模式的实现
  6. [剑指offer]面试题31:连续子数组的最大和
  7. 无法发送具有此谓词类型的内容正文_采用多模态细化类型进行程序合成
  8. 从Google Scholar看各大科技公司科研水平
  9. 直击前沿技术:云原生应用低代码开发平台实践
  10. 垃圾回收中的finalize方法
  11. atitit. 浏览器插件 控件 applet 的部署,签名总结 浏览器 插件 控件 的签名安全机制o9o
  12. cad2020 开始_中望cad2020发布,附简体中文免费版安装教程
  13. 数据分析师—Excel实战篇
  14. win10激活工具,用生命推荐
  15. php实现飘窗,装配式飘窗的制作方法
  16. 数图互通高校房产管理模块,公租房管理是怎样对合同、续租,申请审核审批管理的;
  17. html图片标签img的介绍以及基本用法详解
  18. Windows取证——CHNTPW工具使用(可更改 Windows 密码)
  19. VS +QT 手动添加Q_OBJECT 报错问题解决
  20. 蓝牙XY-MBD07A与XY-MBT58A互连

热门文章

  1. ue4子弹追踪与魔法子弹 逆向教程
  2. 什么是跨域?如何解决跨域?
  3. 宜家IKEA EDIFACT PRODAT报文详解
  4. 47道计算机网络面试题,个人珍藏的80道多线程并发面试题(11-20答案解析)
  5. SQL基础编程——介绍及基本语法了解
  6. 机械工程基础笔记整理
  7. 【快递100接口BUG】数据库时区为0时区,而实际时区为东八区时间,导致存入时间多出八个小时
  8. 【基于Python+tkinter的音乐播放器开发-哔哩哔哩】 https://b23.tv/eG2TwOL
  9. 拼多多模式,砍价免费拿商品算法
  10. 历届试题 大臣的旅费 java