您好我是新手使用Babel进行转换和填充我的代码以适用于Edge和IE等旧版浏览器。我目前遇到了为Promises填充代码的问题。我检查Edge,我收到的错误是:
创建的钩子出错:“TypeError:Object不支持属性或方法'finally'
所以问题在于我的Vue应用程序中的finally方法。在我的应用程序中,我使用Axios从API获取数据。
所以我在这里执行了以下步骤:https://babeljs.io/setup.html#installation在CLI指令下。我的package.json
文件目前看起来像这样:
{
"name": "job-filtering",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "babel src -d lib"
},
"author": "",
"license": "ISC",
"devDependencies": {
"@babel/cli": "^7.2.3",
"@babel/core": "^7.2.2",
"@babel/plugin-transform-regenerator": "^7.0.0",
"@babel/preset-env": "^7.2.3"
},
"dependencies": {
"@babel/polyfill": "^7.2.5"
}
}
和我的.babelrc
文件看起来像:
{
"presets": ["@babel/preset-env"],
"plugins": ["@babel/plugin-transform-regenerator"]
}
所以当我在我的命令行中使用npm run build时,它会尽可能地传递我的代码,但它不会像我的诺言中的finally方法那样填充。
我一直在努力寻找答案,但我似乎无法找到任何我正在寻找的东西。
我尝试添加:
import 'babel/polyfill';
到我的JS文件的顶部,但然后吐出一个错误。我知道这可能是一件很小的东西,我很想让babel给我的JS充实,但我似乎无法找到解决方案。
"@babel/polyfill"
和'babel/polyfill'
不一样。
import "@babel/polyfill";
会解决。
要么:
module.exports = {
entry: ["@babel/polyfill", "./app/js"],
};
将永远为我的项目工作。
请查看以下链接以查找更多信息。 https://babeljs.io/docs/en/babel-polyfill