babel没有对async函数进行转译

最近用vue做一个spa项目 想用async函数写异步逻辑 所以按照官网用例安装了 babel-plugin-syntax-async-functions 然后在.babelrc文件内配置了"plugins": ["syntax-async-functions"]
但是我在入口文件main.js内写了个async函数进行测试 webpack --optimize-minimize 打包出来之后没有对async函数进行任何处理 请问怎么让babel正确转译async函数
ps:其他es6的特性都得到了转译 比如arrow函数 所以唯一的问题就是async函数这里 让我很困惑

package.json内的babel相关:

"devDependencies": {
    "babel": "^6.5.2",
    "babel-core": "^6.24.1",
    "babel-helpers": "^6.23.0",
    "babel-loader": "^6.4.1",
    "babel-plugin-add-module-exports": "^0.2.1",
    "babel-plugin-component": "^0.9.0",
    "babel-plugin-external-helpers": "^6.22.0",
    "babel-plugin-syntax-async-functions": "^6.13.0",
    "babel-plugin-transform-runtime": "^6.22.0",
    "babel-polyfill": "^6.23.0",
    "babel-preset-env": "^1.4.0",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-es2015-loose": "^8.0.0",
    "babel-preset-es2015-node6": "^0.4.0",
    "babel-preset-stage-0": "^6.24.1",
    "babel-runtime": "^6.23.0"
    }

.babelrc 配置:

{
    "presets": [
        ["es2015", "stage-0"]
    ],
    "plugins": ["syntax-async-functions", ["component", [{
        "libraryName": "mint-ui",
        "style": true
    }]]]
}

webpack.config.js:

{
    test: /\.vue$/,
    use: ['vue-loader']
}, {
    test: /\.js$/,
    use: ['babel-loader']
}
阅读 9.8k
3 个回答

orz
presets这里的写法应该是

"presets": [
        "es2015", "stage-0"
    ],

不知道为何我以前会加个中括号...

然后在 webpack设置文件里:

{
     test: /\.js$/,
     exclude: /node_modules/,
     use: ['babel-loader']
}

中间有一句exclude 加上 然后测试了一下转译完成了

async是stage-2的支持的,安装babel-preset-stage-2,或者直接npm install babel-preset-es2016 --save-dev,直接使用ES7。babelrc中"presets": [["es2016"]],

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题