技术类

babel相关(1)

2018-01-09  本文已影响0人  Simple_Learn

Babel就是大家熟知ES6转ES5语法的工具  Babel官网

具体我们可以在官网查看更多

一般在React项目根目录下安装以下三个安装包

yarn add babel-preset-env --dev

yarn add babel-cli --dev

yarn add babel-preset-react --dev

关于yarn相关命令可以查看 Yarn用法

关于使用 babel-preset-env 这个包官方说明,为替换之前babel-presets-es20xx插件,相当于官方的一个整合。方便开发者使用。

在使用中发现 此包中不包含stage-x相关插件

所以我们在React开发中有时候需要安装 stage-0

例如如下的情况:

在图中使用了箭头函数,编译的时候报错,这时添加上如下包

yarn add babel-preset-stage-0 --dev

项目中的.babelrc就如下显示:

{

"presets":

           [ "env", "stage-0", "react" ]

}

这时编译上面的箭头函数就会通过。

env只是JS语法转译插件,如果需要使用ES6的API,必须另外安装babel-polyfill;如果你需要使用babel的API,必须另外安装babel-core;如果你需要转译JSX,需要另外安装babel-preset-react

在遇到问题,首先在官方文档中查看,如果没明白,在网上搜素可以查出相关说明。

比如说babel-presets-env的预设文件设置可以如下:具体参数说明在此【babel】查看

{

"presets": [

        [ "env", {

                "targets": { "safari": 10 },

                 "modules": false,

                  "useBuiltIns": true,

                  "debug": true }]

]

}

解决方案 

babel-preset-env工作babel-preset-latest,但它可以让你指定一个环境,只有在该环境中遗漏的功能。

请注意,这意味着您需要自行安装和启用插件和/或预设实验功能(不属于babel-preset-latest)。

另外一方面,你不需要es20xx预设。

浏览器 

对于浏览器,您可以选择指定:

a.浏览器通过浏览器查询语法。例如:

1. 支持最后两个版本的浏览器和IE 7+。

"babel": {"presets": [["env",{"targets": {"browsers": ["last 2 versions","ie >= 7"]}}]]},

2. 支持拥有5%以上市场份额的浏览器。

"targets": {"browsers":"> 5%"}

b.固定版本的浏览器:

"targets": {"chrome":56}

Node.js 

如果您通过Babel即时编译Node.js的代码,babel-preset-env则特别有用,因为如果您将目标设置"node"为"current":对Node.js的当前运行版本做出反应,

"babel": {"presets": [["env",{"targets": {"node":"current"}}]]},

具体使用,要多实践实践。

上一篇 下一篇

猜你喜欢

热点阅读