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);
}
},
我有一个 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);
}
},