在this answer中建議使用以下語法。傳播運算符未被WebPack根據Vue識別
import { mapActions } from 'vuex'
export default {
vuex: {
getters: { activeDataRow: state => state.activeDataRow },
actions: { updateData, resetData }
},
methods: { ...mapActions(['updateData', 'resetData']) }
}
我不能讓它工作,我得到的錯誤:
Module build failed: SyntaxError: C:/.../navigation.vue: Unexpected token (30:8)
29 | methods: {
30 | ...mapActions(['updateData', 'resetData'])
| ^
31 | }
我試過configuring Babel to stage-2和adding plugins,但它並沒有改變。可以做些什麼呢?我如何解決它?
babel: {
presets: ["es2015", "stage-2"],
plugins: ["transform-object-rest-spread"]
}
webpack.config.js
module.exports = {
entry: './index.js',
output: { path: __dirname, filename: 'bundle.js' },
module: {
loaders: [
{ test: /\.js$/, loader: 'babel', exclude: /node_modules/ },
{ test: /\.vue$/, loader: 'vue' }]
},
babel: {
presets: ["es2015", "stage-2"],
plugins: ['transform-runtime']
},
resolve: { alias: { 'vue$': 'vue/dist/vue.common.js' } }
}
您需要將babel-loader應用於您的Javascript文件。也許它錯過了。第二階段的預設有對象傳播功能,所以情況並非如此。我甚至會建議放棄轉換對象休息傳播。無論如何,請添加您的Webpack配置,至少是JS文件的加載器配置。 –
@RishatMuhametshin我添加了配置文件,請看一看。我是否應該和第三階段一起去? –
我對vue一無所知,但是您的代碼包含在'.vue'或'.js'文件中嗎? babel變換僅適用於'.js'文件。 –