Pruebo mis componentes React con Mocha, y cuando ejecuto la prueba npm obtuve una excepción

SyntaxError: /Users/igunchenko/WorkProjects/Cloud_App/cloud.webapp/cloud.webapp.web/src/main/ui/app/DOM/pages/AdminPanel.js: Unexpected token (18:10)
16 | @connect()
17 | export class AdminPage extends Component {
18 |     state = {
   |           ^  

En .babelrc describo presets y complementos para mi aplicación de reacción:

{
  "presets": [ "es2015", "stage-2", "react"],
  "plugins": ["transform-decorators"]
}

Pero nada cambia. ¿Qué perdí en mis configuraciones? ¿Y cómo se puede resolver este problema?

1
whois42 7 jun. 2016 a las 16:33

3 respuestas

La mejor respuesta

Puedes probar lo siguiente. Me ayudó. Agregue esto a ".babelrc"

  "presets": ["es2015", "react", "stage-0"],
  "plugins": ["transform-decorators-legacy"],

Y esto a su DevDepedencies "package.json"

"babel-plugin-transform-decorators-legacy": "^1.3.4",
"babel-preset-stage-0": "^6.3.13",

Luego actualice su proyecto con "npm i". Espero que sea de ayuda.

2
A.Yamp 4 jul. 2016 a las 09:26

Debería verse más como;

export default class AdminPage extends React.Component {
  constructor() {
    super();
    this.state = {something: ''};
  }
2
J. Mark Stevens 7 jun. 2016 a las 13:48

Solo está aplicando el complemento de transformación mientras omite la sintaxis de los decoradores. Tu puedes hacer,

{
  "presets": ["es2015", "stage-2", "react"],
  "plugins": ["syntax-decorators", "transform-decorators"]
}

O, a partir de este escrito, los "decoradores de clase y propiedad" están en la etapa 1. https://github.com/ tc39 / propuestas

Entonces puedes usar

{
  "presets": ["es2015", "stage-1", "react"]
}
0
Boopathi Rajaa 8 jun. 2016 a las 12:32