javascript - 当 Node 和 React 有单独的依赖关系时,我如何在它们之间共享一个包?
问题描述
我制作了一个适用于 Node 的错误日志包,我也想在我的 React 项目中使用它。
但是,错误日志记录需要用于 React 的不同 NPM 库。
如何根据我的包是为 React 项目还是为 Node 项目安装来选择要使用的库?这可能吗?
我尝试检查窗口对象是否可用,如果需要,则需要 React 使用的库,如果不需要 Node 库。
将此包导入 React 项目后,构建失败,因为它抱怨无法使用不适用于 React 的 Node 包。
代码示例:
if (typeof window !== 'undefined') {
const Raven = require('raven-js');
Raven.config(this.SENTRY_KEY).install();
} else {
const Sentry = require('@sentry/node');
Sentry.init({
dsn: this.SENTRY_KEY,
});
}
我希望能够将这个包用于 Node 和 React。
编辑 - 为了清楚起见,它给出问题的原因是因为其中一个依赖项是 @sentry/node 并且导致 React 构建失败。如果有某种方法可以不根据环境安装某些依赖项,那就太好了。