【发布时间】:2021-03-12 10:19:03
【问题描述】:
我有一个用 Angular.js 编写的旧项目。我需要为 IE11 填充 promise,但它不起作用。
在 gulpfile.js 中我需要 Babel 的东西
var corejs = require('core-js/stable'),
regenerator = require('regenerator-runtime/runtime'),
presetEnv = require('@babel/preset-env'),
concat = require('gulp-concat'),
gulp = require('gulp'),
babel = require('gulp-babel'),
babelRegister = require ('@babel/register'),
我在这里使用管道
var envJS = function () {
var condition = (config[environment].compression);
return gulp.src(paths.appJS)
.pipe(babel(
{
"presets": [
[ "@babel/preset-env", {
"targets": {
"browsers": ["ie >= 11"]
},
"useBuiltIns": "entry",
"corejs": 3
}]
]
}
))
.pipe(ngAnnotate())
//.pipe(gulpif(!condition, jshint()))
//.pipe(gulpif(!condition, jshint.reporter('default')))
.pipe(addStream.obj(prepareTemplates()))
.pipe(configServer())
.pipe(gulpif(condition, uglify({mangle: true})))
.pipe(concat(randomNames.js))
.pipe(gulp.dest(folderDist))
.pipe(connect.reload());
};
代码在 chrome 上构建并运行,但在 IE11 上仍然存在问题,这意味着它没有填充 Promise 对象。
我被困住了,不知道我还能做什么。
【问题讨论】:
-
这里有同样的问题 - 在一个旧项目上做一些工作,并且有一个非常相似的 gulp 设置。输出文件确实替换了箭头函数,但不替换或 polyfil Array.prototype.includes
-
我可以为这个方法手动添加一个 polyfil,但我希望 babel 能够处理它,并且不想手动修补我添加的任何其他 ES2015 方法
标签: javascript babeljs babel-polyfill core-js gulp-babel