现在Chrome浏览器已经很好的支持ES6了,但有些低版本的浏览器或其他浏览器还是不支持ES6的语法,因此实际项目开发或上线过程中就需要把ES6的语法转变成ES5的语法。项目开发过程中 Webpack 有自动编译转换功能,因此免去了环境搭建这一步。但除了Webpack自动编译外,我们还可以用Babel来完成编译。下面搭建一个基本的ES6开发环境。

一、全局安装babel-cli

  在CMD终端命令行 或 代码编辑工具(vscode、webstorm) 终端中 输入以下命令,全局安装babel-cli。

  npm install -g babel-cli 或 cnpm install -g babel-cli

二、新建源文件目录和基础文件 index.html、jindex.js

  1、新建源文件目录和基础文件 index.html、jindex.js

    

    

  2、项目初始化

    npm init -y

    

    

三、本地安装 babel-preset-env 和 babel-cli

  npm install --save-dev babel-preset-env 或 cnpm install --save-dev babel-preset-env
  npm install --save-dev babel-cli 或 cnpm install --save-dev babel-cli

  当然也可以两个命令合并执行

  npm install --save-dev babel-preset-env babel-cli 或 cnpm install --save-dev babel-preset-env babel-cli

  安装完成后,package.json文件中会自动添加 devDependencies 属性及内容。

    

  新建 .babelrc文件,在根目录下新建.babelrc文件,并键入以下代码。  (.babelrc文件就是一般的文本文件,不是json文件)

  {
  "presets":["env"],
  "plugins":[]
  }

  .babelrc文件建立完成后,所有的准备工作全部就绪。现在可以在终端命令行 输入转换命令babel src/index.js -o dist/index.js

  babel src/index.js -o dist/index.js

    

四、简化(格式化)转换命令

  上面那一串命令是不是既长又不规则,输起来还麻烦,记起来也麻烦。所以迫切需要将上面那一串命令简化和格式化,恰好这段时间一直在整Electron,Electron项目的启动命令:npm start;打包命令:npm run-script package 都很简洁且规整,所以可以借鉴这一点。

  打开 package.json文件,找到  "scripts" 项,把想简化和格式化成的命令 写入 "scripts" 内。如想简化成:npm run dev,则在 "scripts" 内添加如下代码:

   "dev": "babel src/index.js -o dist/index.js"

  如想简化成:npm run build,则把 dev 换成 build 即可,改成如下即可:

    "scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "babel src/index.js -o dist/index.js"
},

  按照这种格式,哪怕想格式化成自己的姓名都行。既方便记忆,又方便输入。修改好以后,下次转换代码直接输入和执行命令:npm run xxxxxx 就行了(甚至直接用 npm run xxxxxx 当命令都行)。下面是 package.json 全部代码以及效果截图:

{
"name": "ES6",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"xxxxxx": "babel src/index.js -o dist/index.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"babel-cli": "^6.26.0",
"babel-preset-env": "^1.7.0"
}
}

      

到此为止,ES6的本地开发环境正式搭建完毕,下面就可以随意学习和开发了,并进行代码转换。

最后,附上几个Babel常见命令

  1、直接输入babel-node命令,在命令行中直接执行ES6代码:

   babel-node

  2、转换es6.js文件并在当前命令行 程序窗口中输出 转换后的ES5代码:

    babel es6.js

    

  3、将es6.js转换后输出到es5.js文件中(使用 -o 或 --out-file):

     babel es6.js -o es5.js   

  babel es6.js --out-file es5.js

  4、实时监控es6.js文件变化,有变化就重新编译(使用 -w 或 --watch):

   babel es6.js -w --out-file es5.js

  babel es6.js --watch --out-file es5.js

      每次编辑修改ES6代码后,按Ctrl+S保存就会自动执行编译。

  5、编译整个src文件夹并输出到dist文件夹中(使用 -d 或 --out-dir)

  babel src -d dist
    babel src --out-dir dist

  6、编译整个src文件夹并输出到一个文件中

  babel src --out-file es5.js

最后的最后,ES6的整个学习历程都参考 了 阮一峰 老师的 ECMAScript 6 入门 教程,教程内容详实、举例清晰明确、代码讲解通俗易懂,在此特此感谢!

ECMAScript 6 入门:https://es6.ruanyifeng.com/

ES6 - 基础学习(1): 开发环境搭建的更多相关文章

  1. 如何学习web开发环境搭建和脚手架

    Web前端的学习路线 第一阶段: HTML+CSS: HTML进阶.CSS进阶.div+css布局.HTML+css整站开发. JavaScript基础: Js基础教程.js内置对象常用方法.常见DO ...

  2. Django学习笔记 开发环境搭建

    为什么使用django?1.支持快速开发:用python开发:数据库ORM系统,并不需要我们手动地构造SQL语句,而是用python的对象访问数据库,能够提升开发效率.2.大量内置应用:后台管理系统a ...

  3. 1-ESP8266 SDK开发基础入门篇--开发环境搭建

    因为今天终于做好了自己的另一块工控板,所以我就开始写基础公开篇的内容,希望自己小小的努力能够帮到大家 自己做的另一块板子 https://www.cnblogs.com/yangfengwu/cate ...

  4. C++学习之开发环境搭建篇(一)

    由于C++是一门非跨平台语言,其开发的程序编译生成的可执行文件,只能在相应的操作系统中被执行,离开此系统环境将无法执行. 主要原因是不同的操作系统,可执行文件的结构不同,最为常见的操作系统是有:MAC ...

  5. 我的Java学习笔记 -开发环境搭建

    开始学习Java~ 一.Java简介 Java编程语言是一种简单.面向对象.分布式.解释型.健壮安全.与系统无关.可移植.高性能.多线程和动态的语言. Java分为三个体系: JavaSE(J2SE) ...

  6. Android基础学习:Android环境搭建

    在3年前,自学过Android的一些基础知识,但是那个时候Linux等其他的知识结构比较薄弱,理解得不是很深刻,后来因项目变动的原因,没有再搞Android相关的东西了.时过境迁,还是因为项目变动,重 ...

  7. 一步步学习Linux开发环境搭建与使用

    00.Linux开发环境搭建与使用1--Linux简史 01.Linux开发环境搭建与使用2--Linux系统(ubuntu)安装方案 02.Linux开发环境搭建与使用3--通过虚拟机安装系统(ub ...

  8. JAVA基础学习——1.1 环境搭建 之jdk安装,环境变量配置 (系统Win10,64bit)

    大学里虽然老师教过JAVA,但我没学.后来工作了,断断续续的也碰到了JAVA的项目,都是拉过来就干的节奏.也没有好好系统的学习一下. 从今天开始系统学习整理一下JAVA,以后再碰到JAVA项目的时候, ...

  9. ES6系列_1之开发环境搭建

    前言: 1.es6的简单介绍: ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在2015年6月正式发布了.它的目标,是使得 JavaScript 语言 ...

随机推荐

  1. [洛谷P4617] [COCI2017-2018#5] Planinarenje

    Description \(Mirko\) 和 \(Slavko\) 喜欢一起去远足. \(Mirko\) 偏好攀登山峰,而 \(Slavko\) 偏爱山谷.因此每次他们登上一座山峰后,\(Slavk ...

  2. Ubuntu中部署Django项目的配置与链接MySQL

    Django的简介 MVT模式的介绍创建项目的虚拟环境 本次使用的是pip安装 一.更新 sudo apt update 二.安装pip sudo apt install python3-pip 三. ...

  3. 团队项目-Beta冲刺(第一周)

    团队项目-Beta冲刺(第一周) 一. 作业描述 这个作业属于哪个课程 这个作业要求在哪里 团队名称 CTRL-IKun 这个作业的目标 合理安排时间完成接下来的任务,剩余任务预估,分配任务(开发,测 ...

  4. 链接拼接的方法(用于解决同一个脚本返回两种不同的url链接的问题)

    实例一: 上图所示 爬虫返回的链接有一部分带有http前缀,有一部分没有,且也不知道具体哪些链接会出现没有前缀的情况 后面如果通过返回链接进行再次访问,那么肯定会出现报错的问题 思路: 判断 返回值内 ...

  5. 深入SpringMVC注解

    原文链接:https://blog.csdn.net/chenpeng19910926/article/details/70837756 @Controller 在SpringMVC 中提供了一个非常 ...

  6. Leetcode 题目整理-6 Swap Nodes in Pairs & Remove Duplicates from Sorted Array

    24. Swap Nodes in Pairs Given a linked list, swap every two adjacent nodes and return its head. For ...

  7. 通过 SCF Component 轻松构建 REST API,再也不用熬夜加班了

    本教程将分享如何通过 Serverless SCF Component .云函数 SCF 及 API 网关组件,快速构建一个 REST API 并实现 GET/PUT 操作. 当一个应用需要对第三方提 ...

  8. 新来个技术总监,禁止我们使用Lombok!

    我有个学弟,在一家小型互联网公司做Java后端开发,最近他们公司新来了一个技术总监,这位技术总监对技术细节很看重,一来公司之后就推出了很多"政策",比如定义了很多开发规范.日志规范 ...

  9. Node.js实战--资源压缩与zlib模块

    Blog:<NodeJS模块研究 - zlib> Github:https://github.com/dongyuanxin/blog nodejs 的 zlib 模块提供了资源压缩功能. ...

  10. Request和Session的生命周期

    request的生命周期是request请求域,一个请求结束,则request结束 session的生命周期是session会话域,打开一个浏览器请求一个网站的页面后,Session开始,当sessi ...