2016-11-30 12 views
0

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-2adding 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' } } 
} 
+0

Javascriptファイルにbabel-loaderを適用する必要があります。おそらくそれが欠けています。ステージ2のプリセットはオブジェクトスプレッド機能を持っているので、そうではありません。私はトランスフォームオブジェクトの休憩をあきらめることを提案します。とにかく、Webpackの設定を追加してください。少なくとも、JSファイルのローダーの設定は必要です。 –

+0

@RishatMuhametshin私は設定ファイルを追加しました。私は既にステージ3と一緒に行くべきですか? –

+0

私はvueについて何も知らないけど、あなたのコードは '.vue'や' .js'ファイルに入っていますか?バーベル変換は '.js'ファイルにのみ適用されます。 –

答えて

1

これは、ソリューションのいずれかになります。あなたは次のように、jsコードのためにあなたの設定ファイルにbabel loaderを持っている必要があります。

module: { 
    loaders: [ 
    { 
     test: /\.vue$/, 
     loader: 'vue' 
    }, 
    { 
     test: /\.js$/, 
     loader: 'babel', 
     include: projectRoot, 
     exclude: /node_modules/ 
    }, 
    ... 
    ... 

後、私のバベル関連の依存関係です:あなたはこのrepoでこの設定およびその他の関連するコードを見ることができます

"babel-core": "^6.0.0", 
"babel-eslint": "^7.0.0", 
"babel-loader": "^6.0.0", 
"babel-plugin-transform-runtime": "^6.0.0", 
"babel-polyfill": "^6.16.0", 
"babel-preset-es2015": "^6.0.0", 
"babel-preset-stage-2": "^6.0.0", 
"babel-register": "^6.0.0", 
"babel-core": "^6.0.0", 
"babel-eslint": "^7.0.0", 
"babel-loader": "^6.0.0", 
"babel-plugin-transform-runtime": "^6.0.0", 
"babel-polyfill": "^6.16.0", 
"babel-preset-es2015": "^6.0.0", 
"babel-preset-stage-2": "^6.0.0", 
"babel-register": "^6.0.0", 

+0

恐ろしいです。それは働いている。しかし、私は* include:projectRoot *の部分を持っていませんし、今は必要ではありませんが、それはさらに問題の源になるだろうと恐れています。それは正確に何ですか?または、もっと興味深いことに、もしそこに**あるなら、何が起こっているのでしょうか? –

+1

[こちら](https://github.com/mimani/vue-example/blob/master/build/webpack.base.conf.js#L4)で見ることができます。これはコードルートのフォルダの場所です。 – Saurabh

関連する問題