Babel не запускается при импорте из `node_modules` через загрузчик Webpack - PullRequest
0 голосов
/ 06 марта 2019

У меня проблемы с запуском Webpack для babel файла в node_modules.В частности, я пытаюсь преобразовать файл .svg (из FontAwesome или из других .svg источников) с помощью пользовательского загрузчика веб-пакетов, а затем передать его в Babel для преобразования в JSX.

Через множествоВ разных конфигурациях, которые я пробовал, проблема обычно выглядит так:

1.Unexpected token

Module parse failed: Unexpected token (1:0)
You may need an appropriate loader to handle this file type.
<svg ...></svg>

Это указывает на то, что ни пользовательский загрузчик, ни babel не применяются, т.е. файл просто проходит без какого-либо загрузчика.

2.Syntax Error

SyntaxError: /Users/bmh/Repos/bug-reports/node_modules/icon/ad.svg: 
  Unexpected token (2:20)
1 |
2 |     const element = <div>hey</div>;

Это указывает на то, что пользовательский загрузчик работает (поскольку для целей теста он жестко задан как <div>hey</div>), но что последующий babel-loader не вызывается.

Проблема не возникает, когда .svg не находится в node_modules, что означает, что и пользовательский загрузчик, изагрузчик babel работает как положено.Либо webpack, либо babel решают не применять преобразования babel к файлам в node_modules, и неясно, как обойти эту проблему.

Единственное обнаруженное мной предложение, которое, казалось, имело вес, состояло в том, чтобы предоставить includeи exclude аргументы для веб-пакета module.rules, но различные перестановки, которые я пробовал, не сработали.

Воспроизвести

Репозиторий: https://github.com/brianmhunt/bug-reports/tree/jsx-svg-import

$ git clone git@github.com:brianmhunt/bug-reports.git`
$ git checkout jsx-svg-import
$ make

1 Ответ

0 голосов
/ 06 марта 2019

Как подробно описано в баге # 736 babel-loader :

... преобразовать .babelrc в babel.config.js с той же конфигурацией, babel-loader [работает]как и ожидалось.

Объяснение было следующим:

... потому что .babelrc не "просачивается" через разные пакеты (ограничивается package.json)

...