Оператор распространения в React Native вызывает ошибку «Неожиданный токен» с мокко

Я начинаю проект React Native и хочу использовать ECMAScript 2015 для своего кода и мокко для модульных тестов. Я установил babel-register, babel-preset-es2015 и babel-preset-stage-2 и добавил это в файл package.json моего проекта:

"babel": {
    "presets": ["es2015", "stage-2"]
}

Но когда я запускаю mocha --compilers js:babel-register и пытаюсь протестировать модуль, который импортирует React Native API...

import React from 'react-native';

let {Dimensions} = React;

... Я получаю сообщение об операторе распространения, используемом React:

node_modules/react-native/Libraries/react-native/react-native.js:107
...require('React'),
^^^

SyntaxError: Unexpected token ...

Является ли это ошибкой Babel — разве предустановка stage-2 не должна добавлять поддержку оператора распространения? Или я что-то еще упускаю?


person Rob Johansen    schedule 01.01.2016    source источник
comment
Я просто не понимаю, как вы здесь используете оператор распространения. Почему вы используете его здесь?   -  person void    schedule 01.01.2016
comment
Я не использую оператор распространения. React Native использует его, и я импортирую React Native в один из своих модулей.   -  person Rob Johansen    schedule 01.01.2016
comment
Если вы посмотрите на package.json в react-native (github.com /facebook/react-native/blob/master/package.json), вы увидите, что он импортирует около 30 связанных с Babel пакетов. Не добавляя их все, вы, вероятно, продолжите сталкиваться с такими проблемами с отсутствующими пакетами.   -  person Alexander Kuzmin    schedule 01.01.2016
comment
Есть ли прогресс в этом? Я получаю ту же ошибку с помощью простого сценария веб-пакета для компиляции и загрузки крошечного файла машинописного текста. Мой загрузчик не вызывает Babel: { test: /\.tsx?$/, exclude: /node_modules/, loader: 'ts' }   -  person timecc    schedule 25.01.2016


Ответы (1)