У меня есть проект проекта React, и я пытаюсь включить MobX в него. При том, что я должен использовать декоратор, т.е.Неожиданный токен '@' при использовании декораторов ES6
@observable
Когда я делаю, что, хотя я получаю следующее сообщение об ошибке:
https://github.com/mobxjs/mobx
Module build failed: SyntaxError: Unexpected token (5:22)
class ListStore { @observable items = ['Pete', 'John', 'Henry', 'Jeff', 'Bob']; }
Моего Webpack конфигурации:
module.exports = {
entry: './src/App.js',
output: {
path: __dirname,
filename: 'app.js'
},
module: {
loaders: [{
test: /\.jsx?$/,
exclude: /node_modules/,
loader: 'babel',
query: {
presets: ['es2015', 'react'],
plugins: ['transform-decorators-legacy']
}
},
{
test: /\.scss?$/,
exclude: /node_modules/,
loaders: ['style', 'css', 'sass']
}]
}
};
Моих Конфигурация ESLint:
{
"parserOptions": {
"ecmaVersion": 6,
"ecmaFeatures": {
"jsx": true
},
"sourceType": "module"
},
"env": {
"browser": true,
"node": true,
"es6": false
},
"ecmaFeatures": {
"modules": true
},
"rules": {
"strict": [
2,
"global"
],
"quotes": [
2,
"single"
],
"indent": [
2,
4
],
"eqeqeq": [
2,
"smart"
],
"semi": [
2,
"always"
],
"max-depth": [
2,
4
],
"max-statements": [
2,
15
],
"complexity": [
2,
5
]
}
}
В качестве примечания, я новичок в использовании Webpack, а также с использованием ESLint, поэтому это может быть очень новым вопросом. Однако после проведения онлайн-исследований я не нашел ничего, что сработало. (Это включает в себя установку плагина Babel «transform-decorators-legacy».
Вы проверили этот шаблонный код? Может быть, это немного устарело, но у него могут быть пакеты, которых у вас нет в вашем пакете.json (который вы также можете добавить в сообщение?) Https://github.com/mobxjs/mobx-react-boilerplate – Icepickle
Ну, это потому, что декораторы не находятся в ES6. Они все еще являются предложением. – Bergi