我用gulp和babel把ES6转录成ES5。这是我的代码:
gulpfile.babel.js
import gulp from 'gulp';
import babel from 'gulp-babel';
gulp.src([appDir + 'js/**/*.js', '!' + appDir + 'js/{vendors,vendors/**}'])
.pipe(babel({
presets: ['es2015'],
plugins: ['transform-runtime']
}))
.pipe(gulp.dest(devDir + 'js'));package.json
"devDependencies": {
"babel-core": "*",
"babel-plugin-transform-runtime": "*",
"babel-preset-es2015": "*",
"gulp": "*",
"gulp-babel": "*",
}.babelrc
{
"presets": [
"es2015"
],
"plugins": ["transform-runtime"]
}除了IE11和边缘之外,每种浏览器都能正常工作。
IE11有错误:
“‘Symbol”未定义
边缘有错误:
对象不支持属性或方法“匹配”
我希望将这个插件"plugins": ["transform-es2015-typeof-symbol"]添加到.babelrc文件中将解决“符号”是一个未定义的问题,但不是!
我是不是错过了一些特殊的设置或转换插件的babel?
发布于 2017-08-04 17:46:33
您需要从CDN加载https://cdnjs.com/libraries/babel-polyfill,因为您没有使用模块绑定器。我就会掉下来
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-polyfill/6.23.0/polyfill.min.js"></script>在其他JS文件之前进入您的页面。
至于您对matches的错误,您必须通过查看代码来判断。使用Element#matches的代码不会在较早的IE版本上工作,因为该方法要么不存在,要么使用不同的名称。
https://stackoverflow.com/questions/45512328
复制相似问题