复习babel
对babel进行复习
Babel Register
第一:在项目根目录下创建一个 .babelrc
文件,写入以下内容:
{
"presets": [
]
}
第二:安装对应的转码规则:
# ES2015转码规则
$ npm install --save-dev babel-preset-es2015
# react转码规则
$ npm install --save-dev babel-preset-react
# ES7不同阶段语法提案的转码规则(共有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": [
"es2015"
]
}
第四步(从第四步开始,前三部必不可少):
- babel-cli:命令行转码
- babel-node:babel-cli工具自带一个babel-node命令,提供一个支持ES6的REPL环境
- babel-register:实时转码,所以只适合在开发环境使用
- babel-core:如果某些代码需要调用Babel的API进行转码,就要使用babel-core模块
babel-cli:
一种使用方式就是全局安装:npm install -g babel-cli
(可以通过 npm root -g
查看全局包安装目录),
只要全局安装了 babel-cli
,则会在命令行中多出一个命令:babel
。
这里如果使用全局安装的 babel-cli
进行转码是没有问题的,但是问题是如果一旦项目给了别人,
别人不知道你使用了这个转码工具,所以解决方式就是将 babel-cli
安装到本地项目中:
npm install --save-dev babel-cli
这种第三方命令行工具如果安装到本地项目,会在 node_modules
中生成一个目录:.bin
,
然后第三方命令行工具会将对应的可执行文件放到该目录中。
这样的话,就可以直接在本地项目中使用该第三方命令行工具了。
对于如何使用,则可以通过配置 package.json
文件中的 scripts
字段来配置使用:
{
"name": "babel-demo",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "babel demo1.js"
},
"devDependencies": {
"babel-cli": "^6.22.2",
"babel-preset-es2015": "^6.22.0",
"babel-preset-react": "^6.22.0"
}
}
babel-register(适合开发阶段,实时编码转换):
第一:安装 babel-register
npm install --save-dev babel-register
第二:添加一个傀儡文件(main.js):
require('babel-register')
require('你的核心功能代码入口文件模块')
第三:使用 node 执行 main.js
,而不是你的入口文件.
--save 和 --save-dev
通过 --save
参数安装的包,是将依赖项保存到 package.json 文件中的 dependencies 选项中。
通过 --save-dev
参数安装的包,是将依赖项保存到 package.json 文件中的 devDependencies 选项中。
无论是 --save
或者 --save-dev
安装的包,通过执行 npm install
都会将对应的依赖包安装进来。
但是,在开发阶段会有一些仅仅用来辅助开发的一些第三方包或是工具,然后最终上线运行(到了生产环境),
这些开发依赖项就不再需要了,就可以通过 npm install --production
命令仅仅安装 dependencies
中的
依赖项
复习babel的更多相关文章
- 前端笔记之ES678&Webpack&Babel(下)AMD|CMD规范&模块&webpack&Promise对象&Generator函数
一.AMD和CMD规范(了解) 1.1传统的前端开发多个js文件的关系 yuan.js中定义了一个函数 function mianji(r){ return 3.14 * r * r } main.j ...
- 复习webpack的常用loader
今天复习了下webpack的常用loaders,其实习惯ES6开发的话,webpack的config.js基础配置应该是比较固定: 首先是JS,我们ES6要转为ES5,需要用到babel转码: 1. ...
- 【长文详解】TypeScript、Babel、webpack以及IDE对TS的类型检查
只要接触过ts的前端同学都能回答出ts是js超集,它具备静态类型分析,能够根据类型在静态代码的解析过程中对ts代码进行类型检查,从而在保证类型的一致性.那,现在让你对你的webpack项目(其实任意类 ...
- iOS总结_UI层自我复习总结
UI层复习笔记 在main文件中,UIApplicationMain函数一共做了三件事 根据第三个参数创建了一个应用程序对象 默认写nil,即创建的是UIApplication类型的对象,此对象看成是 ...
- vuex复习方案
这次复习vuex,发现官方vuex2.0的文档写得太简略了,有些看不懂了.然后看了看1.0的文档,感觉很不错.那以后需要复习的话,还是先看1.0的文档吧.
- babel presets stage-x
在一些新框架的代码中,常基于es6/7标准来书写代码.鉴于这些标准被没有被浏览器广泛支持,我们一般使用babel来将使用e6/7标准书写的代码降级编译(或者说转译)为浏览器可解析的es4/5代码. 以 ...
- ES6转换器之Babel
ES6部分功能没有支持,所以想学习ES6,得先有个转换器,就是将ES6的代码转换为ES5. 我这里用的是Gulp + Bable的形式来将ES6转换为ES5的. 前提: (1).Gulp和Bable都 ...
- 我的操作系统复习——I/O控制和系统调用
上篇博客介绍了存储器管理的相关知识——我的操作系统复习——存储器管理,本篇讲设备管理中的I/O控制方式和操作系统中的系统调用. 一.I/O控制方式 I/O就是输入输出,I/O设备指的是输入输出设备和存 ...
- Babel:JavaScript编译器
一.介绍: Babel是一个Javascript编译器,可以将ES6语法转换成ES5. 这意味着,你可以现在就用ES6编写程序,而不用担心现有环境是否支持.下面是一个例子: //转码前: input. ...
随机推荐
- CCF_201612-1_最大波动
http://115.28.138.223/view.page?gpid=T47 水. #include<iostream> #include<cstring> #includ ...
- learn about sqlserver partitition and partition table 1
Dear all, Let get into business, the partitions on sql server is very different with that on oracle. ...
- 输入url地址到展示主页的过程
过程 1.DNS解析 2.TCP连接 3.发送HTTP请求 4.服务器处理请求并返回HTTP报文 5.浏览器解析渲染页面 6.连接结束
- [redis读书笔记] 第一部分 数据结构与对象 对象特性
一 类型检查和多态 类型检查,即有的命令是只针对特定类型的,如果类型不对,就会报错,此处的类型,是指的键类型,即robj.type.下面为有类型检查的命令: 对于某一种类型,redis下底层的实 ...
- php 截取字符串长度 并 把超出规定长度的内容用...替代
<?php header("content-type:text/html;charset=utf-8");#设置文件编码 error_reporting(E_ALL);#设置 ...
- NodeJS 介绍安装
1.NodeJS简介 Node.js是基于Chrome JavaScript运行时建立的一个平台,实际上它是对Google Chrome V8引擎进行了封装,它主要用于创建快速的.可扩展的网络应用.N ...
- CentOS7.3下yum安装MariaDB10.3.12并指定utf8字符集
添加MariaDB的yum源,指定安装的版本,然后使用 yum 工具进行安装 参考MariaDB官方网站对应安装方法和步骤 https://downloads.mariadb.org/mariadb/ ...
- Solr系列2-Solr服务安装
1: Solr简介 1.1 简介: 1.2 下载: 2:Solr 安装 2.1 安装 2.2 目录结构 3 :启动Solr 3.1 启动 3.2使用Solr提供的测试数据 3.5 Solr配置文集 3 ...
- 前后端API交互如何保证数据安全性?(转)
前言 前后端分离的开发方式,我们以接口为标准来进行推动,定义好接口,各自开发自己的功能,最后进行联调整合.无论是开发原生的APP还是webapp还是PC端的软件,只要是前后端分离的模式,就避免不了调用 ...
- php/phpmyadmin新手式环境搭建
之前就在折腾 zabbix 的时候遇到一个情况, 安装 php6 的时候各种库丢失, 最重要的 gd 经常跑路 只是无意中遇到了一种小方式, 现在已经迷糊了, 前天因为在部署 phpAdmin 的时候 ...