2015-11-03 73 views
0

我正尝试使用here中的generator-react-webpack创建一个Todos示例应用程序。一切工作,直到我开始使用alt的通量模式。当我运行使用npm run项目中,我得到了以下错误:与alt和webpack发生反应:@datasource出现意外的令牌

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

它抱怨上面的@datasource装饰线12。下面是我的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 
} 

现在一切正常!希望这将有助于未来的人。