详解使用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 相关文章推荐
比较简单的一个符合web标准的JS调用flash方法
Nov 29 Javascript
Prototype源码浅析 Enumerable部分(二)
Jan 18 Javascript
javascript 中String.match()与RegExp.exec()的区别说明
Jan 10 Javascript
jQuery.Validate验证库的使用介绍
Apr 26 Javascript
JavaScript中的标签语句用法分析
Feb 10 Javascript
js使用DOM操作实现简单留言板的方法
Apr 10 Javascript
jQuery 调用WebService 实例讲解
Jun 28 Javascript
Javascript的比较汇总
Jul 25 Javascript
BootStrap实现带关闭按钮功能
Feb 15 Javascript
jQuery鼠标移动图片上实现放大效果
Jun 25 jQuery
Vue兼容ie9的问题全面解决方案
Jun 19 Javascript
vue-cli webpack 引入swiper的操作方法
Sep 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
Windows2003 下 MySQL 数据库每天自动备份
2006/12/21 PHP
php 无限级数据JSON格式及JS解析
2010/07/17 PHP
PHP遍历某个目录下的所有文件和子文件夹的实现代码
2013/06/28 PHP
PHP简单实现DES加密解密的方法
2016/07/12 PHP
PHP与JavaScript针对Cookie的读写、交互操作方法详解
2017/08/07 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
PHP压缩图片功能的介绍
2019/03/21 PHP
javascript实现的动态添加表单元素input,button等(appendChild)
2007/11/24 Javascript
Ajax执行顺序流程及回调问题分析
2012/12/10 Javascript
javascript实现window.print()去除页眉页脚
2014/12/30 Javascript
avalon js实现仿微博拖动图片排序
2015/08/14 Javascript
JS实现浏览器状态栏显示时间的方法
2015/10/27 Javascript
谈一谈js中的执行环境及作用域
2016/03/30 Javascript
JavaScript进阶练习及简单实例分析
2016/06/03 Javascript
使用snowfall.jquery.js实现爱心满屏飞的效果
2017/01/05 Javascript
angularjs通过过滤器返回超链接的方法
2018/10/26 Javascript
async/await优雅的错误处理方法总结
2019/01/30 Javascript
vue如何实现自定义底部菜单栏
2019/07/01 Javascript
移动端吸顶fixbar的解决方案详解
2019/07/17 Javascript
js 使用ajax设置和获取自定义header信息的方法小结
2020/03/12 Javascript
Vue使用预渲染代替SSR的方法
2020/07/02 Javascript
[01:20]2018DOTA2亚洲邀请赛总决赛战队LGD晋级之路
2018/04/07 DOTA
在Django的上下文中设置变量的方法
2015/07/20 Python
Python中http请求方法库汇总
2016/01/06 Python
Python实现Mysql数据库连接池实例详解
2017/04/11 Python
Python实现对象转换为xml的方法示例
2017/06/08 Python
python 给DataFrame增加index行名和columns列名的实现方法
2018/06/08 Python
详解python中的模块及包导入
2019/08/30 Python
解决python多线程报错:AttributeError: Can't pickle local object问题
2020/04/08 Python
socket.io 和canvas 实现的共享画板功能
2019/05/22 HTML / CSS
IE10 Error.stack 让脚本调试更加方便快捷
2013/04/22 HTML / CSS
Feelunique美国:欧洲大型的在线美妆零售电商
2018/11/04 全球购物
法学专业毕业生自荐信范文
2013/12/18 职场文书
课程改革实施方案
2014/03/16 职场文书
优秀乡村医生先进事迹材料
2014/08/23 职场文书
学校法制宣传日活动总结
2014/11/01 职场文书