首页 > 解决方案 > 当 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 构建失败。如果有某种方法可以不根据环境安装某些依赖项,那就太好了。

标签: javascriptnode.jsreactjs

解决方案


推荐阅读