У меня есть монорепо, контролируемое ru sh. js с P NPM в качестве менеджера пакетов.
Раньше все общие модули предварительно компилировались в цели cjs
, esm
, dts
. Но этот подход имеет некоторый fl aws, поэтому я решил оставить их как нетронутые источники и установил их основную запись в package.json
равной "main": "./src/index.ts|x"
. В то же время я использовал react-app-rewired
, чтобы указать Webpack компилировать только те библиотеки с символическими ссылками из node_modules
, используя babel, и все работает отлично. Jest тоже счастлив.
Проблема, с которой я столкнулся, заключается в том, что когда я запускаю tsc
по какой-то причине, компилятор углубляется в локальные пакеты с символическими ссылками и выдает МНОГО проблем (даже если они компиляция без проблем, если вы запускаете их tsc
).
TSForkWebpackPlugin
сообщил о похожих проблемах для create-react-app
, но я проигнорировал их, используя опцию конфигурации reportFiles
с использованием react-app-rewired
, и подумал, что это какая-то ошибка на сайте плагинов, но, похоже, это не так.
Я добавил всевозможные шаблоны глобусов к exclude
, например **/node_modules/@namespace/**
, node_modules/@namespace/**
и node_modules/@namespace
, но ни один из них не работал. "skipLibCheck": true
тоже есть.
Мой tsconfig.json
для справки
{
"compilerOptions": {
"incremental": true,
"baseUrl": "src",
"downlevelIteration": true,
"lib": ["esnext", "dom", "dom.iterable"],
"module": "esnext",
"target": "esnext",
"sourceMap": true,
"allowJs": true,
"esModuleInterop": true,
"isolatedModules": true,
"jsx": "preserve",
"moduleResolution": "node",
"forceConsistentCasingInFileNames": false,
"noImplicitReturns": true,
"noImplicitThis": true,
"noImplicitAny": true,
"noUnusedParameters": true,
"noUnusedLocals": true,
"strictNullChecks": true,
"suppressImplicitAnyIndexErrors": true,
"skipLibCheck": true,
"noEmit": true,
"preserveSymlinks": true,
"resolveJsonModule": true,
"allowSyntheticDefaultImports": true,
"strict": true
},
"exclude": [
"node_modules"
],
"include": ["src"]
}