在使用vuex2时,发现vuex2增加了 mapGetters
和 mapActions
的方法,借助stage2的 Object Rest Operator
特性,可以写出下面代码:
methods: {
marked,
...mapActions([
'getArticles'
])
}
但是在借助babel编译转换时发生了报错: BabelLoaderError: SyntaxError: Unexpected token
。
解决方案
在vuex的repo issues中有人提过这样的问题,原来是我babel预置的转换器是 babel-preset-es2015
,并不能转换 Object Rest Operator
特性。
解决方法很简单了,可以安装整个stage2的预置器或者安装 Object Rest Operator
的babel插件 babel-plugin-transform-object-rest-spread
package.json的devDependencies增加配置:
"babel-plugin-transform-runtime": "^6.22.0",
"babel-preset-stage-2": "^6.22.0",
执行npm install 安装上面的插件,
然后打开文件:.babelrc
输入以下内容:
{
"presets": ["es2015", "stage-2"],
"plugins": ["transform-runtime"],
"comments": false
}
重新build错误解决