网上有很多关于如何设置babel的。我学习着设置,但总差那么几步,没能满足我的需求。

我使用的是webStorm2017.1版本。

babel安装准备

使用webStorm自带的filewatcher中的babel自动编译前,需要安装一些babel库

全局安装babel-cli

npm install -g babel-cli

网上有些教程让全局安装babel,实际上新的babel已经集成在babel-cli里面了。  另外.

网上有部分教程是项目安装babel-cli的。 npm install babel-cli --save-dev    项目安装也是可以的,不过在filewatcher的babel设置里,要在program里选择项目里的babel地址。

安装其他babel库

npm install --save-dev  babel-preset-env

网上很多教程要求安装babel-preset-es2015,在实际编译时,使用webStorm的默认设置,编译是不成功的。 env这个包,会根据es6的运行环境去编译js,而无序指定哪个具体的es版本。

.babelrc

在项目根目录下,也就是package.json同目录下,创建.babelrc文件。【该文件非必须】

很多网上教程推荐里面内容为:{"presets":["es2015"]} 。这里的内容,需要根据自己的需要设置。webstorm的默认设置里,其实是不需要网上的这个推荐内容了。

通过.babelrc,可以实现更多功能。

webstorm开启es6

file - setting - languages & frameworks - Javascript

在右侧的框中,选择ECMAScript6

File Watcher 中babel设置

webstorm 里的路径: file - setting - tools - File Watcher,

从图中右侧的+号里打开新窗口,选中babel,在图中间就会出现Bebel了。

双击上图的Babel,会进入babel设置界面。

在这个界面里,需要设置的地方有三个,Program,Arguments,  Output paths to refresh

这里的设置很重要,网上的教程,基本没有对这三个进行详细介绍的。

Program 如果是全局安装babel-cli的,这里默认就好了。如果是项目安装的,就要右边的...到项目的node_modules文件夹中,找到.bin文件夹下面的babel文件,点ok就可以了

Arguments 默认为: $FilePathRelativeToProjectRoot$ --out-dir dist --source-maps --presets env

Output paths to refresh 默认为:dist\$FileDirRelativeToProjectRoot$\$FileNameWithoutExtension$.js:dist\$FileDirRelativeToProjectRoot$\$FileNameWithoutExtension$.js.map

运行编译后的结果是这样的。

dist目录不一定是我们想要的目录。我们想把编译后的文件都放在js目录下,于是就将Arguments里的dist改成了js。 结果编译后的文件却像下图这样,不断嵌套。

要解决这个不断嵌套的问题,就需要把Output paths to refresh 中的dist,同样该为js,就不会出现这种嵌套编译了。

我的目标要编译成这种结构的js

我的设置为: 这样就可以让编译后的文件和原文件在同一个文件夹下

Arguments:

$FilePathRelativeToProjectRoot$ --out-file $FileDir$\$FileNameWithoutExtension$-compile.js --source-maps --presets env

Output paths to refresh:

$FileDir$\$FileNameWithoutExtension$-compile.js:$FileDir$\$FileNameWithoutExtension$-compile.js.map

webstrom如何配置babel来转换es6的更多相关文章

  1. babel配置项目目录支持转换es6语法,引入非项目目录js后,引入Js转换无效

    我遇到了一个问题,我在已经配置babel的项目中通过require引入了一个项目目录外层的另一个js文件,前期是可以成功转换并打包的,但是到了后期就不行了,报错: 这个报错的意思是,引入的js文件中有 ...

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

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

  3. Babel6.x 转换ES6

    本文介绍Babel6.x的安装过程~ 首先呢,可以使用Babel在线转换 https://babeljs.io/repl/ 然后进入主题:安装Babel(命令行环境,针对Babel6.x版本) 1.首 ...

  4. 配置babel

    配置babel ECMAScript的版本,每年都会定期举行会议,发布各种标准,当前版本到了2019,但大部分人使用的浏览器,都可以支持es2015,也就是es6,要等到大部分浏览器都支持到最新版本, ...

  5. 关于webpack,babel,以及es6和commonJS之间的联系(转)

    add by zhj: babel是将es6转为es5,而webpack从名字也能看出来,是一个打包工具,根据文件之间的依赖关系,将文件进行打包 原文:https://blog.csdn.net/a2 ...

  6. 【02】webstorm配置babel转换器+截图(by魔芋)

    [02]webstorm配置babel转换器+截图(by魔芋)   [02]魔芋的安装过程     01,配置babel.   02,用webstorm.注意webstorm的版本号.   03,使用 ...

  7. webpack配置babel篇

    babel-polyfill & babel-runtime & babel-preset-env babel-core babel-core 的作用是把 js 代码分析成 ast , ...

  8. Babel下的ES6兼容性与规范

    前端开发 Babel下的ES6兼容性与规范   ES6标准发布后,前端人员也开发渐渐了解到了es6,但是由于兼容性的问题,仍然没有得到广泛的推广,不过业界也用了一些折中性的方案来解决兼容性和开发体系问 ...

  9. webpack.config.js====配置babel

    参考:https://www.jianshu.com/p/9808f550c6a91. 安装依赖babel-loader: 负责 es6 语法转化babel-preset-env: 包含 es6.7 ...

随机推荐

  1. iOS菊花加载圈

    自定制一个继承于UIView的类然后重写initWithFrame方法;如下 - (id)initWithFrame:(CGRect)frame { self = [super initWithFra ...

  2. mybatis深入学习

    最近做的一个活可以让我深入学习一下现在比较流行的ORM框架:mybatis/ibatis的内部原理,SQL的拦截,解析,dataSource和JDBC中做一些额外的事情.如果有可能的话想造一个比较简单 ...

  3. C语言 · 最大子阵

    历届试题 最大子阵   时间限制:1.0s   内存限制:256.0MB      问题描述 给定一个n*m的矩阵A,求A中的一个非空子矩阵,使这个子矩阵中的元素和最大. 其中,A的子矩阵指在A中行和 ...

  4. 用JS的正则表达式如何判断输入框内为中文或者是英文

    1.只能输入数字和英文的: <input onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clip ...

  5. Hive UDF IP解析(二):使用geoip2数据库自定义UDF

    开发中经常会碰到将IP转为地域的问题,所以以下记录Hive中自定义UDF来解析IP. 使用到的地域库位maxmind公司的geoIP2数据库,分为免费版GeoLite2-City.mmdb和收费版Ge ...

  6. IS支持解析json

    1. MIME设置:在IIS的站点属性的HTTP头设置里,选MIME 映射中点击”文件类型”-”新类型”,添加一个文件类型:关联扩展名:*.json内容类型(MIME):application/x-j ...

  7. C# 关于JArray和JObject封装JSON对象

    直入主题,不废话... 1.JObject:基本的json对象 /// <summary> /// Gets the j object. /// </summary> /// ...

  8. 关闭 禁用 Redis危险命令

    Redis的危险命令主要有: flushdb,清空数据库 flushall,清空所有记录,数据库 config,客户端连接后可配置服务器 keys,客户端连接后可查看所有存在的键 我们常常需要禁用以上 ...

  9. js学习笔记28----事件默认行为

    事件默认行为 : 当一个事件发生的时候浏览器自己会默认做的事情.   怎么阻止? 当前这个行为是什么事件触发的,然后在这个事件的处理函数中使用return false;   右键菜单事件 oncont ...

  10. 给border在加上图片

    .div_top .div_menu li a:hover{ border:2px; height:24px; border-image:url(../img/bg-line-1.png) 0 0 7 ...