RollupJS 和 TSC - 如果检测到循环依赖,如何使构建失败

RollupJS and TSC - how to fail build if circular dependency is detected

我有一个 React 组件库构建,使用 RollupJS (2.7) 和 TypeScript (3.9.10),这有助于报告循环依赖:

>> yarn build
(!) Circular dependency
src/index.ts -> src/components/index.ts -> src/components/Button/index.ts -> src/components/Button/Button.tsx -> src/index.ts

但是构建仍然完成:

created ./dist/index.esm.js, ./dist/index.js in 4.3s

我查看了 tsconfig and rollup.config.js 的文档,但没有看到任何与循环依赖相关的配置更改。

有没有一种方法(通过工具,即 tsconfig,rollup.config)如果检测到循环依赖,我们可以让构建失败?

多亏 this comment 我才知道 onwarn API。

我没有看到 onwarn 的官方 Rollup 文档,但我可以通过将其添加到我的 rollup.config.js:

的顶层来解决我的问题
onwarn: (message) => {
  // fail build if circular dependencies are found
  if (message.code === 'CIRCULAR_DEPENDENCY') {
    console.error(message);
    process.exit(-1);
  }
},