使用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
规范,
这就需要我们额外使用模块打包工具,为我们的代码做一些包裹,让它能在浏览器端使用。 比如 Browserify
, Webpack
。