webstorm bable
一、设置npm源
1.得到原本的镜像地址
npm get registry
> https://registry.npmjs.org/
设成淘宝的
npm config set registry http://registry.npm.taobao.org/
2.换成原来的
npm config set registry https://registry.npmjs.org/
二、Bable
1.在webstorm中创建项目.
2.在项目的根目录下创建package.json
- {
- "name": "test-project",
- "version": "1.0.0"
- }
3.打开webstorm的Terminal (快捷键alt+f12),安装babel-cli.(需要先安装node.js)
- npm install --save-dev babel-cli
4.File-->Settings-->Languages&Frameworks-->JavaScript JavaScript language version 选择ECMAScript 6.
5.File-->Settings-->Tools-->Files Watchers 中加上Babel
6.将Files Watchers 中 Babel 中的Program 改为$ProjectFileDir$\node_modules\.bin\babel.cmd (windows中)
7.在Terminal中,安装babel的ES6的preset
npm install --save-dev babel-preset-es2015
8.在根目录下新建一个.babelrc文件(就是babel在当前项目的配置文件),我创建的是babel.babelrc
- {
- "presets": [
- "es2015"
- ]
- }
9.ok
备注:我在项目中将Files Watchers 中 Babel 中
File type:JavaScript
更改为
JSX Harmony
Arguments:--source-maps --out-file $FileNameWithoutExtension$-compiled.js --presets es2015 $FilePath$
更改为
--source-maps --out-file $FileNameWithoutExtension$.js --presets es2015 $FilePath$
Output paths to refresh :$FileNameWithoutExtension$-compiled.js:$FileNameWithoutExtension$-compiled.js.map
更改为
$FileNameWithoutExtension$.js:$FileNameWithoutExtension$.js.map
或者
第一种:简单粗暴型,所有语法转译成es5
- npm安装babel
npm install -g babel-cli
2.npm安装Babel的preset
npm install --save-dev babel-preset-es2015
3 工程路径新建.babelrc文件,内容如下
{
"presets": [
"es2015"
]
}
4 打开Preference->Tools->File Watcher->Babel,
如何没有,就点击下面+号,选择新建

5 双击打开Babel,进行配置
重点是Watcher Seetings参数:
- Arguments:
--source-maps --out-file $FileNameWithoutExtension$-compiled.js --presets es2015 $FilePath$
6 这样就完成了自动转换js的配置,新建aa.js
文件测试,如下图,自动生成aa-compiled.js
文件,这个文件就是转译后的文件:

转换效果如何呢?aa.js
内容
export default class A{
constructor(){
this.aa = 1;
this.bb = 2;
}
test(){
}
}
aa-compiled.js
内容:
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
/**
* Created by cly on 2017/4/26.
*/
var A = function () {
function A() {
_classCallCheck(this, A);
this.aa = 1;
this.bb = 2;
}
_createClass(A, [{
key: "test",
value: function test() {}
}]);
return A;
}();
exports.default = A;
//# sourceMappingURL=aa-compiled.js.map
第二种:精细划分型,仅仅把不支持import
,export
的语法进行es5转译
第一种转译我们会发现一个问题,就是所有语法全变成了es5,调试时还得在es6,es5之间切换,简直要精神分裂了呀,有木有!这样我们直接用es5写不就好了吗!
有没有方法,只转译nodejs现在不支持的语法呢,据我所知,最新版node.js的v7.8版本,除了export
,import
这些module依赖以外的语法,都完美支持了es6,将来v8,v9妥妥的完美兼容的节奏。那我们是不是只引入module依赖模块的转译规则,是不是就搞定问题了?
查看babel官网,可以找到如下图

点击进入就是只安装common js插件的方法
1 npm安装
npm install --save-dev babel-plugin-transform-es2015-modules-commonjs
2 修改.babelrc文件,改为如下:
// without options
{
"plugins": ["transform-es2015-modules-commonjs"]
}
//或者
//with options
{
"plugins": [
["transform-es2015-modules-commonjs", {
"allowTopLevelThis": true
}]
]
}
2 修改打开Preference->Tools->File Watcher->Babel,修改Arguments参数的--presets es2015
为 -- plugins transform-es2015-modules-commonjs
3 新建bb.js
测试,跟aa.js的结构一样。bb.js
内容
export default class B{
constructor(){
this.aa = 1;
this.bb = 2;
}
test(){
}
}
转译后的bb-compiled.js
内容
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
/**
* Created by cly on 2017/4/26.
*/
class B {
constructor() {
this.aa = 1;
this.bb = 2;
}
test() {}
}
exports.default = B;
//# sourceMappingURL=bb-compiled.js.map
是不是很简单,快尝试一下吧!
参考文献
WebStorm配置Babel编译环境
[nodejs v6+ 不兼容 ES6 import/export 优雅解决方法]
遇到的问题:一直提示出错,则只要升级到最新版本的webstorm
首先在webstorm的file watcher中添加babel,配置如下:
之后在src目录下建立一个JS文件,报如下错误:
21:13:02 An exception occurred while executing watcher 'Babel'. Watcher has been disabled. Fix it.: Cannot run program "cmd.exe" (in directory "D:\WebStorm_workspace\Study-ES6\src\static"): CreateProcess error=2, 系统找不到指定的文件。
而在命令行进行babel操作都是可以的,如下图:
请问这是为什么?
另外这里还有一个问题,我的babel-preset-es2015和babel-cli都没有进行全局安装(为了可移植性),都是安装在项目根目录下的,这样造成了一个问题,因为要进行命令行操作,我直接在项目目录下是不行的,因为根本就没有babel.cmd这个文件,所以我把node_modules/.bin目录下的babel.cmd文件复制了一份到项目根目录下,并将里面的"%~dp0\..\babel-cli\bin\babel.js" %*
改为了"%~dp0\node_modules\babel-cli\bin\babel.js" %*
,这样才能确保在项目根目录下能执行babel命令,如果不这样,那么我要切换到node_modules/.bin目录下才能执行babel命令。我总感觉这里怪怪的,是不是姿势没对,还望大家指点指点
翻遍了google,在webstorm的官方论坛里也搜索遍了,都没有找到答案,最后是这么解决的:
因为我们知道,webstorm他也是用命令行去执行babel命令,之前我发现webstorm的terminal打开会报错,但是没有太注意,我只是把这个错误记录了下来,放到浏览器里面开了一个google标签页,就没有管了,因为一直在想babel的问题,心想之后再来解决(其实是因为我先大概搜索了一下没有找到答案)。
在2,3个小时的搜索无解后,我开始想,应该和这个有很大的关系,于是继续搜索,还是无解,想着直接提issue了,但是回复可能要等几天,突然发现,我的webstorm是2016.1版本,他一直提示我更新,会不会和这个有关系,于是乎立马更新,然后破解,打开了发现terminal正常了。。。
然后操作和以前完全一模一样,这次babel就能用了,这也印证了之前的结论,"webstorm他也是用命令行去执行babel命令",所以你必须确保它的terminal能正常使用。OK,忙活了2,3个小时也算是解决了问题,没有白费。
webstorm bable的更多相关文章
- Webstorm+Webpack+echarts构建个性化定制的数据可视化图表&&两个echarts详细教程(柱状图,南丁格尔图)
Webstorm+Webpack+echarts ECharts 特性介绍 ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(I ...
- 使用webstorm+webpack构建简单入门级“HelloWorld”的应用&&引用jquery来实现alert
使用webstorm+webpack构建简单入门级"HelloWorld"的应用&&构建使用jquery来实现 1.首先你自己把webstorm安装完成. 请参考这 ...
- webstorm下载&&安装过程&&打开项目
一.webstorm下载 WebStorm 是jetbrains公司旗下一款JavaScript 开发工具.被广大中国JS开发者誉为"Web前端开发神器"."最强大的HT ...
- WebStorm 2016 最新版激活(activation code方式)
WebStorm 2016 最新版激活(activation code方式) WebStorm activation code WebStorm 最新版本激活方式: 今天下载最新版本的WebStorm ...
- webstorm license key
JetBrains WebStorm注册码 UserName: William License Key : ===== LICENSE BEGIN ===== 45550-12042010 00001 ...
- WebStorm 常用功能的使用技巧分享
WebStorm 是 JetBrain 公司开发的一款 JavaScript IDE,使用非常方便,可以使编写代码过程更加流畅. 本文在这里分享一些常用功能的使用技巧,希望能帮助大家更好的使用这款强大 ...
- Webstorm编译TypeScript
下载webstorm 下载node.js编译器npm Webstorm的安装很简单.但如果没有Java For Mac 环境打开Webstorm时会有提示,点击提示会跳转下载链接,下载安装就好. ...
- WebStorm
1,简介 WebStorm 10是一款强大的HTML5编辑工具,是 JetBrains 推出的一款商业的 JavaScript 开发工具.功能强大的前端专用IDE,拥有即时编辑(chrome).自动完 ...
- webstorm 常用快捷键
webstorm应该是目前最强的js编辑器了,结合sublime text可以很效率的开发项目.今天整理了一些webstorm比较实用的快捷键: Ctrl+/ 或 Ctrl+Shift+/ 注释(// ...
随机推荐
- (53)zabbix模板
zabbix模板是做什么的? 平时工作中,我们需要监控web.mysql.redis.nginx这些服务器,众多服务器的业务都是一样的,所以我们只要事先创建好模板,然后所有服务器链接这个模板即可,如果 ...
- json数据格式 与 for in
格式一: var json1={ name:'json', age:'23' }; json1.name='金毛'; 格式二: (比较安全) 属性名字里有空格或者有连字符‘-’或者有保留字例如‘fo ...
- Python基本运算符和流程控制
常量 常量即不可改变的量,在Python中不存在常量,我们只能逻辑上规定一个常量并不去修改它,通常用全大写字母表示. 基本运算符之二 算术运算 运算符 说明 ** 幂运算 *, /, //, % 乘. ...
- Python3的基本数据类型及常用的方法
python3的基本数据类型: 在python3当中有这么几种基本的数据类型:int(整形).str(字符串).list(列表).tuple(元组).dict(字典).bool(布尔值)等.数字整体划 ...
- Android开发——子线程操作UI的几种方法
在Android项目中经常有碰到这样的问题,在子线程中完成耗时操作之后要更新UI,下面就自己经历的一些项目总结一下更新的方法: 在看方法之前需要了解一下Android中的消息机制. 转载请标明出处:h ...
- List<T> List<?> 区别用法
List<T>是泛型方法,List<?>是限制通配符 List<T>一般有两种用途:1.定义一个通用的泛型方法.伪代码: public interface Dao{ ...
- 【Go】并发编程
Go语言宣扬用通讯的方式共享数据. Go语言以独特的并发编程模型傲视群雄,与并发编程关系最紧密的代码包就是sync包,意思是同步.同步的用途有两个,一个是避免多个线程在同一时刻操作同一个数据块,另一个 ...
- OpenJ_Bailian——4115鸣人和佐助(带状态的A*)
鸣人和佐助 Time Limit: 1000MS Memory Limit: 65536KB 64bit IO Format: %I64d & %I64u Submit Status Desc ...
- [UOJ#128][BZOJ4196][Noi2015]软件包管理器
[UOJ#128][BZOJ4196][Noi2015]软件包管理器 试题描述 Linux用户和OSX用户一定对软件包管理器不会陌生.通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管 ...
- [luoguP2221] [HAOI2012]高速公路(线段树)
传送门 考虑每一段对答案的贡献 用每一段的左端点来表示当前这一段,那么区间就变成了[1,n-1] 如果询问区间[l,r],其中一个点的位置为x,则它对答案的贡献为(x-l)*(r-x)*s[x](s[ ...