2016-12-27 3 views
0

Я загрузил приложение, используя create-react-app, а затем вытащил его и теперь настраивал его дальше. Но у меня проблема, webpack не уважает пресеты, объявленные в .babelrc?Почему babel-loader может игнорировать .babelrc?

У меня есть эта ошибка, из-за недостатка stage-1 пресет.

Syntax error: Missing class properties transform

Между тем, если я заменю погрузчик с строковой нотацией, как этот babel?presets[]=react,presets[]=es2015,presets[]=stage-1, он работает хорошо.

Что можно сделать, чтобы исправить это?

.babelrc:

{ 
    "presets": [ 
    "es2015", 
    "react", 
    "stage-1" 
    ], 
    "plugins": [ 
    "transform-flow-strip-types", 
    "transform-react-remove-prop-types" 
    ] 
} 

Webpack конфигурации столпотворение погрузчик:

{ 
    test: /\.(js|jsx)$/, 
    include: paths.appSrc, 
    loader: 'babel', 
} 

ответ

1

Это будет игнорировать ваши пользовательские babelrc. Вы должны либо ...

1) обеспечивают их в в WebPack конфигурации, как вы упомянули

2) извлечь, запустив npm run eject и использовать пользовательские babelrc

3) Используйте вилку create-react-app например this one

create-react-app намеренно абстрагирует процесс настройки babel. В конце концов, его цель - устранить головную боль при создании проекта для людей, которые впервые реагируют на них, или просто надеются быстро начать работу. Настройка babel - большая часть этой головной боли. Следовательно, он не позволяет вам настраивать babel.

Это, однако, обеспечивает возможность извлечения именно по этой причине. См. this github issue для более подробного обсуждения этого вопроса.

+0

Фактически я уже выбрал его, как вы рекомендовали в (2). Но он по-прежнему игнорирует .babelrc из корня проекта. –

+0

К сожалению, нет [такой линии] (https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/config/webpack.config.dev.js#L150-Lundefined) в «выгруженной» версии конфигурации webpack –

+0

Да, я просто понял, что и удалил редактирование. Я в тупике. Удачи. –

0

Добавление transform-class-properties плагин в .babelrc помог. Так что все в порядке с самим загрузчиком. Но все же нет ответа, почему stage-1 пресет в массиве .babelrc игнорируется, а с текстовой нотацией он работает. Надеюсь, это кому-то поможет.

Смежные вопросы