Я использую Lerna для создания монорепозитория, содержащего несколько приложений React и некоторые пользовательские библиотеки (утилиты, компоненты UI React и т. Д.).
Вот структура моего монорепозитория на данный момент:
packages
app1
app2
ui-component
utils
Но когда я пытаюсь использовать свои библиотеки в своих приложениях, у меня возникают две проблемы:
SyntaxError: ...\packages\ui-component\index.js Support for the experimental syntax 'classProperties' isn't currently enabled (2:8):
1 | class Foo {
> 2 | name = 'This is Foo'
| ^
3 | }
Add @babel/plugin-proposal-class-properties (https://git.io/vb4SL) to the 'plugins' section of your Babel config to enable transformation.
If you want to leave it as-is, add @babel/plugin-syntax-class-properties (https://git.io/vb4yQ) to the 'plugins' section to enable parsing.
SyntaxError: ...\packages\ui-component\index.js: Support for the experimental syntax 'jsx' isn't currently enabled (3:5):
1 | function Foo() {
2 | return (
> 3 | <div>Foo React Component</div>
| ^
4 | );
5 | }
Add @babel/preset-react (https://git.io/JfeDR) to the 'presets' section of your Babel config to enable transformation.
If you want to leave it as-is, add @babel/plugin-syntax-jsx (https://git.io/vb4yA) to the 'plugins' section to enable parsing.
Сообщения об ошибках довольно явные, я прочитал о файлах конфигурации Babel здесь и, установив @babel/preset-react
и @babel/plugin-proposal-class-properties
, создали следующие babel.config.json
:
{
"presets": [
"@babel/preset-react"
],
"plugins": [
"@babel/plugin-proposal-class-properties"
]
}
Но почему-то не учитывается.
Я попытался поместить этот файл в корень своего монорепозитория. Пытался положить в свои пакеты. Пытался переименовать в .babelrc.json
. Я пробовал поместить эти настройки в свой package.json
в раздел "babel"
. Но безрезультатно...
Примечание. У меня нет webpack.config.js
, и я бы предпочел не выгружать свое приложение.
package.json
. Моя проблема заключалась в том, что код моего пакета был скопирован как есть в моих модулях узлов приложения. Мне просто не хватало шага транспилирования. Я подробно расскажу об этом в ответе, который опубликую как можно скорее. - person Rodolphe   schedule 12.03.2021