详解使用create-react-app快速构建React开发环境


Posted in Javascript onMay 16, 2018

最近在折腾react开发,总结一个react环境搭建的教程,写得比较细碎,基本上就是自己的搭建步骤了,希望能够帮助到有需要的小伙伴。

常用的脚手架

  1. react-boilerplate
  2. react-redux-starter-kit
  3. create-react-app(git上关注量最大)

使用 create-react-app 快速构建 React 开发环境

create-react-app 是来自于 Facebook,通过该命令我们无需配置就能快速构建 React 开发环境。

create-react-app 自动创建的项目是基于 Webpack + ES6 。

执行以下命令创建项目:

$ cnpm install -g create-react-app
$ create-react-app my-app
$ cd my-app/
$ npm start

tips:

如果使用 npm 速度很慢,你可以使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:

$ npm install -g cnpm --registry=https://registry.npm.taobao.org
$ npm config set registry https://registry.npm.taobao.org

如何编译less

1.暴露出配置文件

npm run eject

2.安装less-loader 和less

npm install less-loader less --save-dev

3.修改webpack 配置

修改 webpack.config.dev.js 和 webpack.config-prod.js 配置文件

test: /\.css$/ 改为 /\.(css|less)$/

在这个test的下面找到use,添加loader

{
  loader: require.resolve('less-loader') // compiles Less to CSS
}

好了 重新运行项目 less已经编译了

项目结构

src目录

src目录用来存放我们自己的代码,可以在src下面创建子目录,只有src根目录下的文件会被webpack编译,所以必须把文件放在src根目录下,否则不会识别。

public目录

只有public目录下的文件才会被public/index.html引用

tip:public和src下的index.html文件必须存在不能改名

常用命令

1启动命令

npm start

2编译打包命令。在生产环境中编译代码,并放在build目录中能够正确的打包代码,并且优化,压缩,使用hash重命名文件

npm run build

3.文件修改后测试

npm test

4.结构命令。暴露出webpck的配置命令,原本在脚手架中,配置项是不可见的,需要修改才执行这个命令(这是一个单项命令,一旦结构,不可逆。)

npm run eject

5.https运行

set HTTPS=true&&npm start

6.线上编译

这个是create-react-app的一个大亮点,它能让你的应用骗译出在线上生产环境运行的代码,编译出来的文件很小,且文件名还带hash值,方便我们做cache,而且它还提供一个服务器,让我们在本地也能看到线上生产环境类似的效果,真的超级方便。

只需一行命令:

npm run build

7.api开发

只需要在package.json文件中,加一个配置项就可以了。

"proxy": http://localhost:3001/,

8.ajax?
替代用fetch

npm install whatwg-fetch
import 'whatwg-fetch'
fetch('/power-mnjy-mobile/intf/h5/user/login?mobile=13000000001&pwd=a111111&ignoreCsrfToken=true')
  .then(res => res.json())
  .then((data) => {
   this.setState({ value:data });
  });

调试工具react developer tools(https://github.com/facebook/react-devtools)

在chrome中添加扩展程序react developer tools,记得重启浏览器(重启 重启 重启,重要的事情说三遍),在chrome的开发工具里面会出现react选项。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
修改好的jquery滚动字幕效果实现代码
Jun 22 Javascript
JQuery通过Ajax提交表单并返回结果
Jul 31 Javascript
表格单元格交错着色实现思路及代码
Apr 01 Javascript
JavaScript实现复制功能各浏览器支持情况实测
Jul 18 Javascript
为JS扩展Array.prototype.indexOf引发的问题及解决办法
Jan 21 Javascript
jQuery悬停文字提示框插件jquery.tooltipster.js用法示例【附demo源码下载】
Jul 19 Javascript
js删除数组元素、清空数组的简单方法(必看)
Jul 27 Javascript
微信公众号-获取用户信息(网页授权获取)实现步骤
Oct 21 Javascript
微信小程序 后台https域名绑定和免费的https证书申请详解
Nov 10 Javascript
Bootstrap Img 图片样式(推荐)
Dec 13 Javascript
简介JavaScript错误处理机制
Aug 04 Javascript
解决vuecli3中img src 的引入问题
Aug 04 Javascript
seajs下require书写约定实例分析
May 16 #Javascript
Vue使用高德地图搭建实时公交应用功能(地图 + 附近站点+线路详情 + 输入提示+换乘详情)
May 16 #Javascript
基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能
May 16 #Javascript
vue input 输入校验字母数字组合且长度小于30的实现代码
May 16 #Javascript
详解通过源码解析Node.js中cluster模块的主要功能实现
May 16 #Javascript
浅谈如何通过node.js对数据进行MD5加密
May 16 #Javascript
如何用input标签和jquery实现多图片的上传和回显功能
May 16 #jQuery
You might like
玩转虚拟域名◎+ .
2006/10/09 PHP
PHP+MySQL删除操作实例
2015/01/21 PHP
php发送与接收流文件的方法
2015/02/11 PHP
thinkPHP学习笔记之安装配置篇
2015/03/05 PHP
浅谈PHP命令执行php文件需要注意的问题
2016/12/16 PHP
老生常谈PHP面向对象之注册表模式
2017/05/26 PHP
js的Boolean对象初始值示例
2014/03/04 Javascript
使用insertAfter()方法在现有元素后添加一个新元素
2014/05/28 Javascript
jquery+html5烂漫爱心表白动画代码分享
2015/08/24 Javascript
jquery ui sortable拖拽后保存位置
2017/04/27 jQuery
原生JS发送异步数据请求
2017/06/08 Javascript
vue引入swiper插件的使用实例
2017/07/19 Javascript
不得不看之JavaScript构造函数及new运算符
2017/08/21 Javascript
解决Vue axios post请求,后台获取不到数据的问题方法
2018/08/11 Javascript
[01:01:36]Optic vs paiN 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python编写网页爬虫脚本并实现APScheduler调度
2014/07/28 Python
Python中暂存上传图片的方法
2015/02/18 Python
用PyQt进行Python图形界面的程序的开发的入门指引
2015/04/14 Python
python在指定目录下查找gif文件的方法
2015/05/04 Python
python字符串编码识别模块chardet简单应用
2015/06/15 Python
Python遍历文件夹和读写文件的实现方法
2017/05/10 Python
python的构建工具setup.py的方法使用示例
2017/10/23 Python
Django model select的多种用法详解
2019/07/16 Python
python使用正则来处理各种匹配问题
2019/12/22 Python
详解python 降级到3.6终极解决方案
2020/02/06 Python
Python更新所有已安装包的操作
2020/02/13 Python
在 Python 中使用 MQTT的方法
2020/08/18 Python
CSS3 实现图形下落动画效果
2020/11/13 HTML / CSS
演讲稿开场白
2014/01/13 职场文书
幼儿园儿童节活动主持词+串词大全
2014/03/21 职场文书
《假如》教学反思
2014/04/17 职场文书
员工安全生产承诺书
2014/05/22 职场文书
优秀党员学习焦裕禄精神思想汇报范文
2014/09/10 职场文书
乡镇干部个人整改措施思想汇报
2014/10/10 职场文书
党员志愿者服务倡议书
2015/04/29 职场文书
严以修身专题学习研讨会发言材料
2015/11/09 职场文书