第一步:创建一个web项目

使用命令:npm init

这个命令的目的是生成package.json.

执行第二步中的命令后生成的package.json的文件的内容是:

{
"name": "babel_learning",
"version": "1.0.0",
"description": "learning babel",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "qin <123@qq.com>",
"license": "ISC",
"devDependencies": {
"babel-cli": "^6.26.0",
"babel-preset-latest": "^6.24.1",
"babel-preset-react": "^6.24.1",
"babel-preset-stage-2": "^6.24.1"
}
}

第二步:

使用下面的命令生成babel转码所需的js文件:

$ npm install babel-cli      注意这里我没有带-g这个参数,主要是想在本地,不想全局的。

# 最新转码规则
$ npm install --save-dev babel-preset-latest # react 转码规则
$ npm install --save-dev babel-preset-react # 不同阶段语法提案的转码规则(共有4个阶段),选装一个
$ npm install --save-dev babel-preset-stage-0
$ npm install --save-dev babel-preset-stage-1
$ npm install --save-dev babel-preset-stage-2
$ npm install --save-dev babel-preset-stage-3
第三步:创建.babelrc 文件:
该文件有presets这里是转码规则。
plugins这里指插件。
文件的内容如下所示:
{
"presets": [
"latest",
"react",
"stage-2"
],
"plugins": []
}
该测试项目的目录结构是:

example.js的代码如下:
[1,2,3].map(x => x*x);
console.log(`hello
world
longlive`);

  最后转成example_compile.js的文件的代码如下:

"use strict";

[, , ].map(function (x) {
return x * x;
});
console.log("hello\nworld\nlonglive");


最后这步非常最要因为我按照阮一峰老师的es6中的教程运行命令根本不行,这里有可能我的babel-cli是6版本的。
注意我这里用了npx
D:\materialDesignLearn\babel_learning>npx babel example.js //把exaple.js中的es6代码转成es5形式的代码
npx: installed 1 in 2.739s
Path must be a string. Received undefined
D:\materialDesignLearn\babel_learning\node_modules\babel-cli\bin\babel.js
"use strict"; [1, 2, 3].map(function (x) {
return x * x;
}); D:\materialDesignLearn\babel_learning>example.js D:\materialDesignLearn\babel_learning>npx babel example.js -o example_comple.js //把exaple.js转成es5的代码输入到example_compile.js文件中。
npx: installed 1 in 4.476s
Path must be a string. Received undefined
D:\materialDesignLearn\babel_learning\node_modules\babel-cli\bin\babel.js D:\materialDesignLearn\babel_learning>npx babel example.js
npx: installed 1 in 4.7s
Path must be a string. Received undefined
D:\materialDesignLearn\babel_learning\node_modules\babel-cli\bin\babel.js
"use strict"; [1, 2, 3].map(function (x) {
return x * x;
});
console.log("hello\nworld\nlonglive"); D:\materialDesignLearn\babel_learning>npx babel example.js -o example_comple.js
npx: installed 1 in 4.35s
Path must be a string. Received undefined
D:\materialDesignLearn\babel_learning\node_modules\babel-cli\bin\babel.js D:\materialDesignLearn\babel_learning>example_comple.js D:\materialDesignLearn\babel_learning>

  

在文章的结束说一下babel-cli的babel-node可以直接运行es6的代码,但是也要在前面带npx

D:\materialDesignLearn\babel_learning>npx babel-node
npx: installed 1 in 5.09s
Path must be a string. Received undefined
D:\materialDesignLearn\babel_learning\node_modules\babel-cli\bin\babel-node.js
> console.log([1,2,3].map(x=>{console.log(x*x);}));//这是es6代码
1
4
9
[ undefined, undefined, undefined ]
undefined
> [1,2,3].map(x=>x*x);//这也是es6代码
[ 1, 4, 9 ]//es6代码的返回结果。
>

  



使用babel把es6代码转成es5代码的更多相关文章

  1. ES6 代码转成 ES5 代码的实现思路是什么(来自github每日一题)

    将代码字符串解析成抽象语法树,即所谓的 AST 对 AST 进行处理,在这个阶段可以对 ES6 代码进行相应转换,即转成 ES5 代码 根据处理后的 AST 再生成代码字符串 每日一题https:// ...

  2. 如何使用Babel将ES6转码为ES5?

    一.前言: 当我们还在沉迷于ES5的时候,殊不知ES6早就已经发布几年了.时代在进步,WEB前端技术也在日新月异,是时候做些改变了! ECMAScript 6(ES6)的发展速度非常之快,但现代浏览器 ...

  3. 利用babel工具将es6语法转换成es5,Object.assign方法报错

    一.新建工程初始化项目 1.新建工程文件夹这里起名叫做es6,然后在里面创建两个文件夹分别为src .dist如下图:(src为待转换es6 js存放目录,dist为编译完成后的es5 js存放目录) ...

  4. OC代码编译成c++代码 编译器命令

    xcrun -sdk iphoneos clang -arch x86_64 -rewrite-objc Person+Test.m clang -rewrite-objc -fobjc-arc -s ...

  5. Sublime插件支持Sass编译和Babel解析ES6 & .sublime-build文件初探

    用Sublime Text蛮久了,配置配来配去的,每次换电脑都得重头再配过,奈何人老了脑子不中用了,得好好整理一些,下次换电脑就有得参考了.. 同事说,他的WebStorm简直太方便,自身集成了很多方 ...

  6. webpack中使用babel处理es6语法

    index.js const arr = [ new Promise(()=>{}), new Promise(()=>{}) ]; arr.map(item => { consol ...

  7. Sublime插件支持Sass编译和Babel解析ES6 & .sublime-build文件初探(转载自imwtr)

    原文请看:http://www.cnblogs.com/imwtr/p/6010550.html   用Sublime Text蛮久了,配置配来配去的,每次换电脑都得重头再配过,奈何人老了脑子不中用了 ...

  8. 如何把java代码转换成smali代码

    1.概述 Smali是Android系统中Dalvik虚拟机指令语言,在apk逆向过程中有许多工具可以把smali代码转化成java代码.但是在学习Smali语法的过程中,有时候需要进行java代码和 ...

  9. 四十年前的 6502 CPU 指令翻译成 JS 代码会是怎样

    去年折腾的一个东西,之前 blog 里也写过,不过那时边琢磨边写,所以比较杂乱,现在简单完整地讲解一下. 前言 当时看到一本虚拟机相关的书,正好又在想 JS 混淆相关的事,无意中冒出个问题:能不能把某 ...

随机推荐

  1. C语言实例解析精粹学习笔记——30

    实例30: 用已知字符串s中的字符,生成由其中n个字符组成的所有字符排列.设n小于字符串s的字符个数,其中s中的字符在每个排列中最多出现一次.例如,对于s[]="abc",n=2, ...

  2. docker学习(一) 安装

    一.什么是docker 参见https://baike.baidu.com/item/Docker/13344470?fr=aladdin 个人的理解是,通俗来说,就是相当于一个方便携带且个体独立的虚 ...

  3. 在WPF中自定义控件(3) CustomControl (下)

    原文:在WPF中自定义控件(3) CustomControl (下)   在WPF中自定义控件(3) CustomControl (下)                                 ...

  4. LeetCode:15. 3Sum(Medium)

    1. 原题链接 https://leetcode.com/problems/3sum/description/ 2. 题目要求 数组S = nums[n]包含n个整数,请问S中是否存在a,b,c三个整 ...

  5. JAXB轻松转换xml对象和java对象

    实体类如下: package com.cn.entity; import java.util.List; import javax.xml.bind.annotation.XmlAccessType; ...

  6. mysql ON DUPLICATE KEY UPDATE、REPLACE INTO

    INSERT INTO ON DUPLICATE KEY UPDATE 与 REPLACE INTO,两个命令可以处理重复键值问题,在实际上它之间有什么区别呢?前提条件是这个表必须有一个唯一索引或主键 ...

  7. 【数据库】 SQLite 语法

    [数据库] SQLite 语法 一 . 创建数据库 1. 只需创建数据库,只需创建文件,操作时将连接字符串指向该文件即可 2. 连接字符串 : data source = FilePath; 不能加密 ...

  8. 小程序如何去掉button组件的边框

    小程序获取用户授权不再支持wx.getUserInfo方法,改为用button获取,格式如下 <button class="btn btn" open-type=" ...

  9. 一个知乎日报pwa

    前几天写了一篇文章关于如何实现一个简单版的pwa应用,端午撸了一个简易版知乎日报pwa. 关于如何写一个pwa,这里就不多介绍了,请移步这里.应用使用vue+vuex+axios,API这里,这里做了 ...

  10. url解读

    我刚刚学习的时候,我抓到包不知道哪个是协议.哪个是是服务器地址.哪个是端口号...不知道有没有老铁遇到跟我一样的. 接口:http://172.168.12.0:8888/old/login.do 解 ...