详解使用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 相关文章推荐
CSS+Table图文混排中实现文本自适应图片宽度(超简单+跨所有浏览器)
Feb 14 Javascript
jQuery LigerUI 插件介绍及使用之ligerDrag和ligerResizable示例代码打包
Apr 06 Javascript
jQuery 中使用JSON的实现代码
Dec 01 Javascript
js中方法重载如何实现?以及函数的参数问题
Aug 01 Javascript
JavaScritp添加url参数并将参数加入到url中及更改url参数的方法
Oct 26 Javascript
探索angularjs+requirejs全面实现按需加载的套路
Feb 26 Javascript
javascript实现数字倒计时特效
Mar 30 Javascript
bootstrap网页框架的使用方法
May 10 Javascript
jQuery实现动态添加tr到table的方法
Dec 26 Javascript
jQuery基于ajax方式实现用户名存在性检查功能示例
Feb 10 Javascript
详解webpack打包vue时提取css
May 26 Javascript
vue-rx的初步使用教程
Sep 21 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
DC动画很好看?新作烂得令人发指,名叫《红色之子》
2020/04/09 欧美动漫
获得Google PR值的PHP代码
2007/01/28 PHP
php中this关键字用法分析
2016/12/07 PHP
Laravel学习教程之model validation的使用示例
2017/10/23 PHP
深入理解JavaScript系列(9) 根本没有“JSON对象”这回事!
2012/01/15 Javascript
JS自调用匿名函数具体实现
2014/02/11 Javascript
JavaScript获取路径设计源码
2014/05/22 Javascript
TypeScript 中接口详解
2015/06/19 Javascript
JS+DIV+CSS实现仿表单下拉列表效果
2015/08/18 Javascript
javascript中日期函数new Date()的浏览器兼容性问题
2015/09/05 Javascript
js调出上下文菜单的实例
2015/12/17 Javascript
js实现n秒倒计时后才可以点击的效果
2015/12/20 Javascript
jquery实现图片放大点击切换
2017/06/06 jQuery
vue+element-ui动态生成多级表头的方法
2018/08/28 Javascript
详解JavaScript的变量
2019/04/04 Javascript
微信小程序云开发之使用云数据库
2019/05/17 Javascript
微信小程序vant弹窗组件的实现方式
2020/02/21 Javascript
JavaScript实现沿五角星形线摆动的小圆实例详解
2020/07/28 Javascript
python之yield表达式学习
2014/09/02 Python
Python中enumerate()函数编写更Pythonic的循环
2018/03/06 Python
python3下pygame如何实现显示中文
2020/01/11 Python
Python3将ipa包中的文件按大小排序
2020/04/17 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
2020/09/23 Python
Python代码覆盖率统计工具coverage.py用法详解
2020/11/25 Python
为中国消费者甄选天下优品:网易严选
2016/08/11 全球购物
New Balance德国官方网站:购买鞋子和服装
2019/08/31 全球购物
英国银首饰公司:e&e Jewellery
2021/02/11 全球购物
初始化了一个没有run()方法的线程类,是否会出错?
2014/03/27 面试题
幼儿园美术教学反思
2014/01/31 职场文书
市场营销求职信范文
2014/02/21 职场文书
群众路线党课主持词
2014/04/01 职场文书
运动会口号大全
2014/06/07 职场文书
群众路线教育实践活动思想汇报(2014特荐篇)
2014/09/16 职场文书
2014年培训工作总结范文
2014/11/27 职场文书
新教师教学工作总结
2015/08/12 职场文书
学习经验交流会演讲稿
2015/11/02 职场文书