关于babel和babel-polyfill

  使用babel-cli命令babel xx -d xx把一个js文件转成了ES5的,并在package.json里加了"babel-polyfill": "^6.23.0"依赖

转换前

import 'babel-polyfill';
(x => x * 2)(1);
var b = Array.of(1,2,4);

转换后

'use strict';

require('babel-polyfill');

(function (x) {
  return x * 2;
})(1);
var b = Array.of(1, 2, 4);

一方面polyfill并没有在Array.of前面加上ES5的转换API,在浏览器打开也报错:require is not defined

为何,gulp-babel编译es6后的require怎么处理

Babel 的作用是帮助我们转换 ES6 代码为 ES5, 但是它没有模块管理的功能,浏览器端默认也无法识别 CommonJs 规范,

这就需要我们额外使用模块打包工具,为我们的代码做一些包裹,让它能在浏览器端使用。 比如 BrowserifyWebpack

posted @ 2017-06-22 13:56  姜瑞涛  阅读(1170)  评论(0)    收藏  举报