为什么我的巴别塔填充物不工作

Why does my babel poyfill is not working?

本文关键字:工作 填充 别塔 我的 为什么      更新时间:2023-09-26

我的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插件来支持类属性:transform-class-properties(或者,安装stage-1stage-2预设)