У меня проблемы с запуском 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