0

以下は私のwebpack設定です:

var Path = require('path');

module.exports = {
  entry: {
        create: ['babel-polyfill', Path.resolve(__dirname, "./src/create.js")],
  }, 
  output: {
    path: Path.resolve(__dirname, "../../public/crm/js/"),
    filename: '[name].js'
  },
  module: {
    loaders: [
        { 
            test: /\.js$/, 
            exclude: /node_modules/, 
            loader: 'babel-loader?presets[]=es2015,presets[]=react'
        }
    ]
 }
}

また、これらのモジュールをすでにnpmインストールしています:

"babel-core": "^6.17.0",
"babel-loader": "^6.2.5",
"babel-polyfill": "^6.16.0",
"babel-preset-es2015": "^6.13.2",
"babel-preset-react": "^6.16.0"

そして、ここに私の create.js ファイルがあります:

import "babel-polyfill";
import React, { Component } from 'react';
import ReactDOM from 'react-dom';

export default class Select extends Component {

   //some code

  onKeyDown = (e) => {
    const {values} = this.props
    const idx = values.indexOf(this.state.selection)
    if (e.keyCode === 38 && idx > 0) { /* up */
      this.setState({
        selection: values[idx - 1]
      })
    } else if (e.keyCode === 40 && idx < values.length -1) { /* down */
      this.setState({
        selection: values[idx + 1]
      })  
    }
    this.fireOnSelect()
  }

   //some code

}

そして、ここにコンソールからの私のエラーメッセージがあります:

ERROR in ./src/create.js
Module build failed: SyntaxError: Unexpected token (36:12)

  34 |   }
  35 |
> 36 |   onKeyDown = (e) => {
     |             ^
  37 |     const {values} = this.props
  38 |     const idx = values.indexOf(this.state.selection)
  39 |     if (e.keyCode === 38 && idx > 0)

私は何か間違ったことをしましたか?babel polypill を正しくセットアップしていませんか?

4

1 に答える 1

4

クラス プロパティをサポートするには、追加の Babel プラグインを使用する必要があります(または、またはプリセットtransform-class-propertiesをインストールします)。stage-1stage-2

于 2016-10-04T06:48:34.110 に答える