Когда я создаю свою библиотеку компонентов React/TypeScript, сборка Rollup сообщает о циклической зависимости:
yarn run v1.22.10
$ yarn clean && rollup -c
$ rimraf dist
./src/index.ts → ./dist/index.esm.js, ./dist/index.js...
(!) Circular dependency
src/index.ts -> src/components/index.ts -> src/components/Compound/index.ts -> src/components/Compound/Compound.tsx -> src/index.ts
created ./dist/index.esm.js, ./dist/index.js in 4.3s
Done in 5.66s.
Я пытаюсь выяснить куда, откуда исходит это предупреждение. Машинопись? Свернуть? После того, как я это узнаю, я, возможно, смогу настроить его так, чтобы он действительно не работал при сборке.
Я искал и просматривал свой node_modules, но не могу найти источник предупреждения.
rollup.config.js:
import typescript from 'rollup-plugin-typescript2';
import postcss from 'rollup-plugin-postcss';
import pkg from './package.json';
import ts from 'typescript';
export default {
input: './src/index.ts',
external: [...Object.keys(pkg.dependencies || {}), ...Object.keys(pkg.peerDependencies || {})],
output: [
{
file: `./dist/${pkg.module}`,
format: 'es',
sourcemap: true,
},
{
file: `./dist/${pkg.main}`,
format: 'cjs',
sourcemap: true,
},
],
plugins: [
postcss(),
typescript({
typescript: ts,
tsconfig: 'tsconfig.json',
tsconfigDefaults: {
exclude: [
'**/*.spec.ts',
'**/*.test.ts',
'**/*.stories.ts',
'**/*.spec.tsx',
'**/*.test.tsx',
'**/*.stories.tsx',
'node_modules',
'bower_components',
'jspm_packages',
'dist',
],
compilerOptions: {
sourceMap: true,
declaration: true,
},
},
}),
],
};
tsconfig.json:
{
"compilerOptions": {
"allowSyntheticDefaultImports": true,
"declaration": true,
"esModuleInterop": true,
"experimentalDecorators": true,
"jsx": "react",
"lib": ["dom", "es5"],
"module": "esNext",
"moduleResolution": "node",
"noImplicitAny": false,
"noImplicitReturns": true,
"noUnusedLocals": true,
"noUnusedParameters": false,
"outDir": "./dist",
"pretty": true,
"sourceMap": true,
"strict": true,
"target": "es5"
},
"exclude": ["node_modules",],
"include": ["./src"]
}
Итак, мой вопрос не в том, как исправить сообщаемую циклическую зависимость, а в том, как откуда приходит предупреждение о циклической зависимости в выводе консоли?
Node v14.18.2, TypeScript 3.9.10, React 16.14.0, Rollup 2.70.0
По крайней мере, не предоставление трассировки стека по умолчанию





В итоге нашел источник предупреждения здесь в коде накопительного пакета.
Не нашел, потому что не думал, что они будут обрабатывать словосочетание «зависимость» и «зависимости» бьется головой об стену
Это не совсем ответ.
См. выделенный жирным шрифтом текст в исходном вопросе. ИМО это прямой ответ на мой вопрос
Разве Rollup не дает вам трассировку стека? Я уже видел циклические зависимости, вызывающие проблемы в веб-пакете, но мне всегда удавалось получить трассировку стека, которая помогала мне отследить это.