webpack之react开发前准备
今天抽出空来,翻了翻webpack之react的书籍,看到刚出的es6语法,貌似是简单了不少,但是兼容性确实不容乐观,如果实在要用那也不是不可以的,首先就跟随我来看下这个插件吧:
Babel:这个插件是一种多用途的JavaScript编译器,他能把最新的js编译成当下浏览器可以执行的版本,所以这就让我们使用es6语法成为了可能.实现安装Babel CLI,这是一个可以在命令行中使用Babel编译的方法.
npm install babel -cli -g
该命令是告诉命令行来全局安装babel cli插件的,接下来就可以轻松快乐的编译ES6代码了:
//es6.js
let numbers = [1,2,3];
let doubleNumbers = numbers.map((number)=>number*2);
console.log(doubleNumbers);
然后我们可以使用命令去编译该段js代码
babel es6.js -o compiled.js
代开compiled.js你会发现代码并未有任何的改变,只是单纯的拷贝复制了,那是因为我们还没有配置babel,那么接下来我们就一同来配置一下babel,首先创建一个.babelre的配置文件,如下:
//.babelrc
{
"presets":[].
"plugins":[]
}
接下来安装一个预设,就可以完美的把es6语法转为es5语法了
npm install babel-preset-es2015 --save-dev
然后我们修改对应的配置文件
//.babelrc
{
"presets":['es2015'],
"plugins":[]
}
现在终于配置完成了,你会发现再次运行以上命令es6代码被成功编译了.
"use strict"; var number = [1, 2, 3];
var doubleNumber = number.map(function (number) {
return number * 2;
});
还有在即将发布的ES7中的展开操作符"..."(以下简称...),在这里要用一个单独的插件来实现此功能,具体步骤如下:
npm install babel-plugin-transform-object-rest-spread --save-dev
插件安装完成后,我们来用...写一段代码:
let mike = {name: 'mike',age:40};
mike = {...mike,sex:'male'};
console.log(mike);
还运行刚才的-o命令,编译后的文件为:
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var mike = { name: 'mike', age: 40 };
mike = _extends({}, mike, { sex: 'male' });
console.log(mike);
可以看出这个插件添加了一个_extends方法来完成这个功能.
所以对于ES6来说,绝对多数浏览器还是不支持的 但是随着babel插件的诞生,在现代项目中,可以尽情的使用ES6了.
webpack之react开发前准备的更多相关文章
- 搭建 webpack、react 开发环境(三)
		
配置 react-router-dom 我们开发一个 React 工程肯定不是一两个“页面”就可以满足需求的,所以我们需要一个在多个“页面”中跳转的功能,在使用 React 构建的单页面应用中,要 ...
 - 搭建 webpack、react 开发环境(二)
		
配置处理样式文件 到目前为止,整个工程的配置已经差不多了,对于 React 更多相关的配置将在后面继续介绍,现在我们先来对目前的工程进行优化. 前面我们学习了搭建 webpack.react 开发 ...
 - 搭建 webpack、react 开发环境(一)
		
基本介绍 Webpack 是一个前端资源加载/打包工具.它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源,它可以将多种静态资源 JavaScript.css.le ...
 - webpack配置React开发环境(上)
		
Webpack 是一个前端资源加载/打包工具,我们部门的一条主要技术栈就是Webpack+React+ES6+node,虽然之前自己做个人项目也接触好多次Webpack,但是自己并没有研读总结过Web ...
 - 详解 Webpack+Babel+React 开发环境的搭建
		
1.认识Webpack 构建应用前我们先来了解一下Webpack, Webpack是一个模块打包工具,能够把各种文件(例如:ReactJS.Babel.Coffeescript.Less/Sass等) ...
 - 基于webpack的react开发环境搭建新手教程
		
最近学习react-webpack项目搭建,找到一篇我认为不错的博客,跟着学习了一番,写得很详细很好,本篇博客纯属记录总结,要看更详细的搭建过程及解析,请戳: 基于webpack的React项目搭建( ...
 - 使用webpack搭建react开发环境
		
安装和使用webpack 1.初始化项目 mkdir react-redux && cd react-redux npm init -y 2.安装webpack npm i webpa ...
 - 使用dvajs+webpack构建react开发环境
		
之前我有写过博文介绍过dva.js及其用法,dva.js固然是个非常优秀的框架,但是如果用dev-cli来创建的话就会默认绑定使用roadhog而不是webpack.鉴于roadhog的文档要明显少于 ...
 - 用webpack搭建react开发环境
		
安装插件: npm install react react-dom babel-loader babel-core babel-preset-react babel-preset-es2015 配置w ...
 
随机推荐
- 阿里云CentOS环境下tomcat启动超级慢的解决方案
			
1 为什么会出现这个问题 Tomcat在本地服务器跑,一切都正常,但部署到阿里云上,发现启动巨慢. 经过在网上搜索,找到了原因: Tomcat 7/8都使用org.apache.catalina.ut ...
 - JavaScript技巧45招(转)
			
原文:45 Useful JavaScript Tips, Tricks and Best Practices作者:Saad Mousliki 在这篇文章里,我将分享一些JavaScript的技巧.秘 ...
 - c#,利用WPF的ScaleTransform和TranslateTransform实现图片的缩放效果
			
一.缩放要求 1.缩放对象在可视区域内,已对象的中心点进行缩放. 2.缩放对象比可视区大,并且对象各边界都在可视区外围,那么已鼠标位置进行缩放. 3.缩放对象比可视区大,但是缩放后某一边界在可视区的对 ...
 - golang 读取一行
			
//读取一行 func myReadLine(paths string) error { //先获取到文件信息 fileinfo, err := os.Stat(paths) if err != ni ...
 - PageOffice 使用Dome
			
一.前言 PageOffice是一款帮助Web应用系统或Web网站实现用户在线编辑Word.Excel.PowerPoint文档,Word/Excel模板动态填充,Word/Excel在线输入提交,系 ...
 - 【转】.net MVC 生命周期
			
对于Asp.net MVC,我对它的生命周期还是兴趣很浓,于是提出两个问题: 一个HTTP请求从IIS移交到Asp.net运行时,Asp.net MVC是在什么时机获得了控制权并对请求进行处理呢?处理 ...
 - request对象域和转发
			
1.request是一个域对象,具备以下方法 setAttribute(string name,Object O) getAttribute(String name) removeAttribute( ...
 - Spring学习笔记:Spring整合Mybatis学习PPT(三:整合思路)
			
三.Spring-Mybatis的整合思路
 - 前端定位Position属性四个值
			
1.static(静态定位):默认值.没有定位,元素出现在正常的流中. 2.relative(相对定位):生成相对定位的元素,通过top,bottom,left,right的设置相对于其正常(原先本身 ...
 - 基于Node.js的ghost开源博客平台
			
Ghost 是一套基于Node.js 构建的开源博客平台(Open source blogging platform),具有易用的书写界面和体验. 1.安装node windows 下安装npm:ht ...