详解使用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 相关文章推荐
用Javascript评估用户输入密码的强度(Knockout版)
Nov 30 Javascript
JS的千分位算法实现思路
Jul 31 Javascript
用简洁的jQuery方法toggleClass实现隔行换色
Oct 22 Javascript
JavaScript 事件绑定及深入
Apr 13 Javascript
js实现随屏幕滚动的带缓冲效果的右下角广告代码
Sep 04 Javascript
即将发布的jQuery 3 有哪些新特性
Apr 14 Javascript
基于javascript实现精确到毫秒的倒计时限时抢购
Apr 17 Javascript
使用jQuery UI库开发Web界面的简单入门指引
Apr 22 Javascript
Angular的Bootstrap(引导)和Compiler(编译)机制
Jun 20 Javascript
JS数组去重(4种方法)
Mar 27 Javascript
element vue Array数组和Map对象的添加与删除操作
Nov 14 Javascript
JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记
Jul 15 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
php 字符过滤类,用于过滤各类用户输入的数据
2009/05/27 PHP
php操作MongoDB基础教程(连接、新增、修改、删除、查询)
2014/03/25 PHP
PHP上传文件参考配置大文件上传
2015/12/16 PHP
Yii2 rbac权限控制之菜单menu实例教程
2016/04/28 PHP
php实现背景图上添加圆形logo图标的方法
2016/11/17 PHP
js运动框架_包括图片的淡入淡出效果
2013/05/11 Javascript
Eclipse下jQuery文件报错出现错误提示红叉
2014/01/13 Javascript
jQuery判断当前点击的是第几个li的代码
2014/09/26 Javascript
使用pjax实现无刷新更改页面url
2015/02/05 Javascript
javascript实现动态统计图开发实例
2015/11/21 Javascript
React.js入门学习第一篇
2016/03/30 Javascript
js实现自动轮换选项卡
2017/01/13 Javascript
ionic2屏幕适配实现适配手机、平板等设备的示例代码
2017/08/11 Javascript
分析JS中this引发的bug
2017/12/12 Javascript
详解react-native WebView 返回处理(非回调方法可解决)
2018/02/27 Javascript
element-ui表格列金额显示两位小数的方法
2018/08/24 Javascript
vue-router为激活的路由设置样式操作
2020/07/18 Javascript
vue-drawer-layout实现手势滑出菜单栏
2020/11/19 Vue.js
Python Sql数据库增删改查操作简单封装
2016/04/18 Python
Python正则表达式非贪婪、多行匹配功能示例
2017/08/08 Python
python爬虫之BeautifulSoup 使用select方法详解
2017/10/23 Python
python读取目录下最新的文件夹方法
2018/12/24 Python
简单了解python的一些位运算技巧
2019/07/13 Python
Django REST framework 如何实现内置访问频率控制
2019/07/23 Python
Python并发concurrent.futures和asyncio实例
2020/05/04 Python
pyCharm 实现关闭代码检查
2020/06/09 Python
Numpy中ndim、shape、dtype、astype的用法详解
2020/06/14 Python
Python3爬虫中Selenium的用法详解
2020/07/10 Python
Python logging日志模块 配置文件方式
2020/07/12 Python
管理学专业个人求职信范文
2013/09/21 职场文书
粗加工管理制度
2014/02/04 职场文书
宿舍违规用电检讨书
2014/02/16 职场文书
2014三八妇女节活动总结
2014/03/01 职场文书
教师节宣传方案
2014/05/23 职场文书
旅游安全责任协议书
2016/03/22 职场文书
MySQL中JOIN连接的基本用法实例
2022/06/05 MySQL