简介

  ReactJs由于有FB的支持,得到了社区的极大关注,同时由于ReactJs只希望专一的做好View层次上的工作,所以本身并没有涉及很多周边工具。

  今天要介绍一款工具,同时包含一个构建项目模板的工具,对于初学者来说,就有了一个可以学习、开发、测试的平台。

Yeoman

  官方的介绍是这样形容的:“Web App的脚手架工具” --- Yeoman的目的是帮助用户更好的启动项目,提供最好的实践和工具使用户保持高生产率。

  Yeoman提供了一个生成器的生态系统,并提供了一个“Yeoman的工作流”,这个工作流集成了三大部分:

  - 脚手架工具Yo 

  职责:管理包依赖、记录构建配置信息等

  项目地址:https://github.com/yeoman/yo

  

  - 构建工具Grunt

  职责:构建工具,比较流行的有Grunt和Gulp

  项目地址:http://gruntjs.com/

http://gulpjs.com/

  

  - 包管理器Bower

  职责:包依赖管理工具,避免手动安装,比较流行的有Bower和npm

  项目地址:http://bower.io/

       https://www.npmjs.com/

  

项目构建

  以Mac下为例:

  1. 启动terminal,然后进入到指定目录下:

  npm install -g yo

  2. 安装生成器(generator):

  npm install -g generator-react-fullstack

  3. 构建React-fullstack项目模板:

  yo react-fullstack

  4. 启动项目页面:

  npm start

   5. 打开浏览器:

模板结构

  模板结构最好的就是参照官方给出的内容,这里就不一一举例了。

  Ract-starter-kit 官方地址:https://github.com/kriasoft/react-starter-kit

.                   # 根目录
├── /build/ # 编译输出目录
├── /docs/ # 项目相关文档目录
├── /node_modules/ # 3D部分和工具目录
├── /src/ # 代码源目录
│ ├── /actions/ # Actions目录
│ ├── /api/ # REST API目录
│ ├── /components/ # React组件目录
│ ├── /constants/ # Constants (action types etc.)
│ ├── /content/ # Static content 静态内容目录(plain HTML or Markdown, Jade, you name it)
│ ├── /core/ # Core components 核心组件(Flux dispatcher, base classes, utilities)
│ ├── /decorators/ # Higher-order React components高级别的React组件库
│ ├── /public/ # Static files which are copied into the /build/public folder静态文件库
│ ├── /stores/ # Stores contain the application state and logic程序运行时状态和逻辑仓库
│ ├── /utils/ # Utility classes and functions工具类和方法
│ ├── /app.js # Client-side startup script客户端启动脚本
│ ├── /config.js # Global application settings全局设置
│ ├── /routes.js # Universal (isomorphic) application routes通用的应用程序路由
│ └── /server.js # Server-side startup script服务端启动脚本
├── /tools/ # Build automation scripts and utilities自动构建脚本及工具
│ ├── /lib/ # Library for utility snippets工具提示库
│ ├── /build.js # Builds the project from source to output (build) folder从源码编译输出
│ ├── /bundle.js # Bundles the web resources into package(s) through Webpack通过Webpack将资源打包
│ ├── /clean.js # Cleans up the output (build) folder清理输出文件夹
│ ├── /webpack.config.js # Configurations for client-side and server-side bundles配置客户端和服务端打包工具
│ ├── /copy.js # Copies static files to output (build) folder拷贝静态文件
│ ├── /deploy.js # Deploys your web application发布Web程序
│ ├── /serve.js # Launches the Node.js/Express web server启动服务
│ └── /start.js # Launches the development web server with "live reload"启动开发模式,带有时时更新
│── package.json # The list of 3rd party libraries and utilities3D部分列表
└── preprocessor.js # ES6 transpiler settings for Jest ES6的Jest设置

更多资料

@小狼的世界-Yeoman介绍:http://www.cnblogs.com/cocowool/archive/2013/03/09/2952003.html

Yeoman官方地址:http://yeoman.io/

React学习笔记---项目构建的更多相关文章

  1. react学习笔记1--基础知识

    什么是react A JAVASCRIPT LIBRARY FOR BUILDING USER INTERFACES[React是一个用于构建用户界面的JavaScript库.] React之所以快, ...

  2. React学习笔记--程序调试

    React学习笔记 二 程序调试   前面我们搭建好了React的基本开发环境,可以编写基本的React js程序了.但完成的开发环境肯定包含调试器,怎么调试用React编写的JS程序呢?有浏览器,比 ...

  3. React学习笔记 - 组件&Props

    React Learn Note 4 React学习笔记(四) 标签(空格分隔): React JavaScript 三.组件&Props 组件可以将UI切分成一些独立的.可复用的部件,这样你 ...

  4. React学习笔记 - JSX简介

    React Learn Note 2 React学习笔记(二) 标签(空格分隔): React JavaScript 一.JSX简介 像const element = <h1>Hello ...

  5. React学习笔记 - Hello World

    React Learn Note 1 React学习笔记(一) 标签(空格分隔): React JavaScript 前.Hello World 1. 创建单页面应用 使用Create React A ...

  6. React学习笔记(一)- 入门笔记

    React入门指南 作者:狐狸家的鱼 本文链接:React学习笔记 GitHub:sueRimn 1.组件内部状态state的修改 修改组件的每个状态,组件的render()方法都会再次运行.这样就可 ...

  7. React学习笔记(七)条件渲染

    React学习笔记(七) 六.条件渲染 使用if或条件运算符来创建表示当前状态的元素. 可以使用变量来存储元素.比如: let button = null; if (isLoggedIn) { but ...

  8. React学习笔记(六)事件处理

    React学习笔记(六) 五.事件处理 React事件绑定属性的命名采用驼峰写法,不同于传统DOM全部小写. 如果采用JSX的语法,事件函数需要用大括号{}包裹函数名,不同于传统DOM字符串小括号的方 ...

  9. React学习笔记(五)State&声明周期

    React学习笔记(五) 四.State&声明周期 可以为组件添加"状态(state)".状态与属性相似,但是状态是私有的,完全受控于当前组件. 局部状态就是只能用于类(定 ...

随机推荐

  1. php count函数

    最近被问到一个函数count 1.count("123456") 对应的输出是什么? 2.count(null) 对应的输出是什么? 以前没有认真的考虑,只是心里有一个印象那就是c ...

  2. C++的隐式类型转换

    C++是一种复杂的语言,其中有许多“好玩”的特性,学习C++的过程就像在海边捡一颗颗石头,只要坚持不懈,也许一颗颗小石头也能建起你自己小小的城堡. 废话完后,讲讲自己捡到的石头:隐式类型转换 学习出处 ...

  3. 新版本MySQL Server 5.7的免安装版本设置

    今天重新配置电脑,安装java开发运行的相关环境,在安装mysql的过程中,遇到了一些问题. 因为在网站上下载的是免安装版本的mysql 5.7 ,所以在安装过程中只需要解压缩zip的压缩包即可. 之 ...

  4. 下拉框数据的动态选择,类似级联ajax刷新数据

    简单的两个下拉列表,第二个中的数据与第一个下拉框相关: --------------------var selected = $(this).children('option:selected').v ...

  5. Spark简介

    Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点:但不同于MapReduce的是 ...

  6. Spark如何使用Akka实现进程、节点通信的简明介绍

    <深入理解Spark:核心思想与源码分析>一书前言的内容请看链接<深入理解SPARK:核心思想与源码分析>一书正式出版上市 <深入理解Spark:核心思想与源码分析> ...

  7. Java和Ibatis调用存储过程并取得返回值详解

    Java和Ibatis调用存储过程并取得返回值详解 2011-07-19 17:33 jiandanfeng2 CSDN博客 字号:T | T 本文主要介绍了Java和Ibatis调用存储过程的方法, ...

  8. codingNet项目的创建

    首先,在codingNet上面创建一个项目(一般情况下) 然后,在本地打开项目并添加到储存库 其次,提交代码到已经创建好的项目中(注意赋值远程存储库的路径)

  9. ZOJ3792_Romantic Value

    给出图,使得两点无流量,剩余其他边的总容量与删除边数的比值. 要机智啊... 因为原图给的边数不超过1000,容量也不超过1000,可以这样把边的容量变为2000*c+1.这样跑出最大流后,最大流除以 ...

  10. uglifyjs2压缩混淆js文件

    uglifyjs可以用来压缩混淆js文件,发布release版本应用利器.在StackOverflow浏览了一下,相比Google Closure和YUI compressor,uglifyjs被推荐 ...