详解使用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的商品展示放大镜
Aug 07 Javascript
js location.replace与location.reload的区别
Sep 08 Javascript
jquery获取下拉列表的值为null的解决方法
Mar 18 Javascript
JavaScript中的ArrayBuffer详细介绍
Dec 08 Javascript
JavaScript Math.ceil 方法(对数值向上取整)
Jan 09 Javascript
jQuery中on()方法用法实例详解
Feb 06 Javascript
Javascript removeChild()删除节点及删除子节点的方法
Dec 27 Javascript
你有必要知道的25个JavaScript面试题
Dec 29 Javascript
JS随机洗牌算法之数组随机排序
Mar 23 Javascript
Webpack如何引入bootstrap的方法
Jun 17 Javascript
用vue构建多页面应用的示例代码
Sep 20 Javascript
Ant-design-vue Table组件customRow属性的使用说明
Oct 28 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
CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能
2014/07/18 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
CI框架教程之优化验证码机制详解【验证码辅助函数】
2019/04/16 PHP
javascript flash下fromCharCode和charCodeAt方法使用说明
2008/01/12 Javascript
JavaScript Eval 函数使用
2010/03/23 Javascript
JQuery 文本框回车跳到下一个文本框示例代码
2013/08/30 Javascript
jQuery的3种请求方式$.post,$.get,$.getJSON
2014/03/28 Javascript
javascript判断office版本示例
2014/04/11 Javascript
javascript实现的网站访问量统计代码
2015/12/20 Javascript
基于JS实现回到页面顶部的五种写法(从实现到增强)
2016/09/03 Javascript
深入理解Vue-cli搭建项目后的目录结构探秘
2017/07/13 Javascript
利用Angular2 + Ionic3开发IOS应用实例教程
2018/01/15 Javascript
JS装饰器函数用法总结
2018/04/21 Javascript
Vue一个案例引发的递归组件的使用详解
2018/11/15 Javascript
简单了解vue.js数组的常用操作
2019/06/17 Javascript
node实现简单的增删改查接口实例代码
2019/08/22 Javascript
layui实现数据表格自定义数据项
2019/10/26 Javascript
[00:57]深扒TI7聊天轮盘语音出处5
2017/05/11 DOTA
python局部赋值的规则
2013/03/07 Python
Python2.7简单连接与操作MySQL的方法
2016/04/27 Python
Python 详解基本语法_函数_返回值
2017/01/22 Python
详解Python开发中如何使用Hook技巧
2017/11/01 Python
python爬虫爬取网页表格数据
2018/03/07 Python
python调用百度语音识别实现大音频文件语音识别功能
2018/08/30 Python
对python列表里的字典元素去重方法详解
2019/01/21 Python
Python的高阶函数用法实例分析
2019/04/11 Python
Falsk 与 Django 过滤器的使用与区别详解
2019/06/04 Python
Python re 模块findall() 函数返回值展现方式解析
2019/08/09 Python
详解python路径拼接os.path.join()函数的用法
2019/10/09 Python
Python爬虫使用代理IP的实现
2019/10/27 Python
使用python+whoosh实现全文检索
2019/12/09 Python
巴西24小时在线药房:Droga Raia
2020/05/12 全球购物
绿色环保标语
2014/06/12 职场文书
辛德勒的名单观后感
2015/06/03 职场文书
js判断两个数组相等的5种方法
2022/05/06 Javascript