更改babel-preset-env错误翻译fetch语法配置

本文介绍了解决现代浏览器中fetch语法被babel-preset-env错误转换的问题。通过安装babel-plugin-transform-runtime并进行相应配置,确保fetch语法正确运行。

现代浏览器本身识别fetch语法,但是babel-preset-env会错误翻译它,因此需要安装另一个依赖修正。
babel-plugin-transform-runtime

$ npm install --save-dev babel-plugin-transform-runtime

安装依赖后,更改webpack.config.js

loader: "babel-loader",
            options: {
                "presets": ["env"],
                "plugins": [
                    [
                        "transform-runtime", {
                            "helpers": false,
                            "polyfill": false,
                            "regenerator": true,
                            "moduleName": "babel-runtime"
                        }
                    ]
                ]
            }

在使用比如vue-cli快速生成的框架中,是在.babelrc文件中添加

{
    "presets": [
        ["env",
        {
            "modules": false
        }],
        "stage-3"
    ],
    "plugins": [
        [
            "transform-runtime",
            {
                "helpers": false,
                "polyfill": false,
                "regenerator": true,
                "moduleName": "babel-runtime"
            }
        ]
    ]
}

注:windows禁止创建文件名以 . (点)开头。可以在sublime或vscode等编辑器中新建→保存,命名为 .(点)开头的文件。

ERROR Failed to compile with 4 errors 15:39:58 error in ./node_modules/axios/lib/adapters/fetch.js Module parse failed: Unexpected token (161:6) You may need an appropriate loader to handle this file type. | const isCredentialsSupported = "credentials" in Request.prototype; | request = new Request(url, { | ...fetchOptions, | signal: composedSignal, | method: method.toUpperCase(), @ ./node_modules/axios/lib/adapters/adapters.js 4:0-38 @ ./node_modules/axios/lib/axios.js @ ./node_modules/axios/index.js @ ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/components/BrandList.vue @ ./src/components/BrandList.vue @ ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/App.vue @ ./src/App.vue @ ./src/main.js @ multi (webpack)-dev-server/client?http://localhost:8081 webpack/hot/dev-server ./src/main.js error in ./node_modules/axios/lib/helpers/toURLEncodedForm.js Module parse failed: Unexpected token (17:4) You may need an appropriate loader to handle this file type. | return helpers.defaultVisitor.apply(this, arguments); | }, | ...options | }); | } @ ./node_modules/axios/lib/defaults/index.js 7:0-62 @ ./node_modules/axios/lib/axios.js @ ./node_modules/axios/index.js @ ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/components/BrandList.vue @ ./src/components/BrandList.vue @ ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/App.vue @ ./src/App.vue @ ./src/main.js @ multi (webpack)-dev-server/client?http://localhost:8081 webpack/hot/dev-server ./src/main.js error in ./node_modules/axios/lib/platform/index.js Module parse failed: Unexpected token (5:2) You may need an appropriate loader to handle this file type. | | export default { | ...utils, | ...platform | } @ ./node_modules/axios/lib/defaults/index.js 8:0-44 @ ./node_modules/axios/lib/axios.js @ ./node_modules/axios/index.js @ ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/components/BrandList.vue @ ./src/components/BrandList.vue @ ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/App.vue @ ./src/App.vue @ ./src/main.js @ multi (webpack)-dev-server/client?http://localhost:8081 webpack/hot/dev-server ./src/main.js error in ./node_modules/axios/lib/core/mergeConfig.js Module parse failed: Unexpected token (6:69) You may need an appropriate loader to handle this file type. | import AxiosHeaders from "./AxiosHeaders.js"; | | const headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing; | | /** @ ./node_modules/axios/lib/axios.js 6:0-48 @ ./node_modules/axios/index.js @ ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/components/BrandList.vue @ ./src/components/BrandList.vue @ ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/App.vue @ ./src/App.vue @ ./src/main.js @ multi (webpack)-dev-server/client?http://localhost:8081 webpack/hot/dev-server ./src/main.js
最新发布
08-03
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值