2015-11-03 6 views
0

Я пытаюсь создать приложение примера Todos, используя файл-генератор-реакция-webpack от here. Все работает, пока я не начал использовать alt для шаблона потока. При запуске проекта с использованием npm run, я получил следующее сообщение об ошибке:реагировать с alt и webpack: неожиданный токен на @datasource

TodoStore.js: Unexpected token (12:0) 
    10 | import _ from 'lodash'; 
    11 | 
    12 | @datasource(CategorySource) 

Он жалуется на линии 12 выше для @datasource декоратора. Ниже приведен код из моего TodoStore.js:

'use strict'; 

const alt = require('../alt'); 
const Actions = require('../actions'); 
import {decorate, bind, datasource} from 'alt/utils/decorators'; 
import CategorySource from '../sources/CategorySource'; 
import _ from 'lodash'; 

@datasource(CategorySource) 
@decorate(alt) 
class TodoStore { 
    constructor() { 
     this.state = { 
      user: null, 
      todos: null, 
      todosLoading: true 
     }; 
    } 

    @bind(Actions.todosLoading) 
    todosLoading() { 
     this.setState({ 
      todosLoading: true 
     }); 
    } 

    @bind(Actions.todosReceived) 
    receivedTodos(todos) { 
     _(todos) 
     .keys() 
     .each((k) => { 
      todos[k].key = k; 
     }) 
     .value(); 

     this.setState({todos, todosLoading: false}); 
    } 

    @bind(Actions.categoriesReceived) 
    receivedCategories(categories) { 
     let selectedCategory; 
     _(categories) 
     .keys() 
     .each((key, index) => { 
      categories[key].key = key; 
      if (index == 0) { 
       categories[key].selected = true; 
       selectedCategory = categories[key]; 
      } 
     }) 
     .value(); 

     this.setState({categories, selectedCategory, todosDirty: true}); 
    } 

    @bind(Actions.login) 
    login(user) { 
     this.setState({user: user}); 
    } 
} 

export default alt.createStore(TodoStore); 

Я нашел this post для подобной проблемы, но у меня нет никакой удачи заставить его работать, изменяя эту строку: test: /\.jsx?$/, в моем webpack.config. js-файл.

ответ

0

выяснил причину: поскольку он не распознает синтаксис декоратора ES7. Я создал файл с именем .babelrc в корне и его содержание:

{ 
    "stage": 0 
} 

Теперь все работает! Надеюсь, это поможет кому-то в будущем.